Cải thiện hiệu suất trình giả lập Android trên Windows 7 x64


9

Tôi đang chạy Eclipse Helios trên Windows 7 x64. Tôi có Core 2 Duo 2.0 Ghz với 4.0 GB mà tôi nghĩ là đủ, vì tôi chưa bao giờ có bất kỳ vấn đề nào về hiệu năng với các công cụ phát triển khác.

Khi tôi chạy ứng dụng đầu tiên của mình trên Trình giả lập Android (cả phiên bản 2.3.3 và 3.0), phải mất ít nhất 5 phút để tải HĐH và lúc đầu, nó thậm chí không chạy ứng dụng HelloAndroid. Ngay cả khi tôi quản lý để chạy ứng dụng, hiệu suất vẫn không thể chịu được.

Tôi đã thử nhiều thứ để cải thiện hiệu suất, nhưng không có cải tiến lớn nào được hiển thị. Tôi nghĩ rằng tôi đang thiếu một cái gì đó.

Những điều tôi đã thử:

Trên trình quản lý AVD

  1. Kích thước RAM thiết bị đến 512.
  2. Độ phân giải đến 640 x 480.
  3. Ảnh chụp nhanh được kích hoạt.

Trên tùy chọn dự án \ Android

  1. \ Khởi chạy \ -cpu-delay 0 -no-boot-anim -cache ./cache -avd Android3

Những điều tôi không thể thử: - Triển khai trên thiết bị (không có bất kỳ).

Nhân tiện, tôi đã gặp vấn đề tương tự trên MAC Mini 2.66 GHz 2 GB nhưng các cài đặt này đã tạo ra sự khác biệt.

Bất cứ ai cũng có thể đưa ra bất kỳ lời khuyên để cải thiện hiệu suất khập khiễng này?.


Nhận lõi tứ với siêu phân luồng @ 2,8 GHz và thẻ video điên rồ. Heh. Nhưng nghiêm túc, trình giả lập là chậm. Nói chung, mô phỏng luôn chậm trừ khi phần cứng của bạn mạnh hơn. Tôi không nghĩ rằng bạn sẽ làm cho nó hoạt động tốt hơn nhiều so với bạn đã có.
Matthew Đọc

6
Trên thực tế, trình giả lập không hỗ trợ nhiều lõi (chưa). Vì vậy, tốc độ đồng hồ thực sự quan trọng. Ngay cả trên máy dev mới của tôi, tôi có vấn đề về hiệu năng, đặc biệt là với tổ ong. Tôi đang nói về lõi tứ i7 mới nhất, bộ nhớ 8 gb và ổ cứng thể rắn.
Bryan Denny

Ha, vậy Pentium 4 3.0 GHz cũ của tôi có nên chạy tốt hơn không (không có gì khác chính trong nền)? Khùng.
Matthew Đọc

@Bryan Denny Mặc dù trình giả lập không đa luồng, việc cung cấp cho nó nhiều lõi giúp chuyển khối lượng công việc sang các lõi ít ​​sử dụng hơn, nhưng điều này làm giảm tính ổn định, dẫn đến sự cố định kỳ. Vì vậy, đó là sự đánh đổi tốc độ / ổn định, nhưng tôi thích sử dụng tất cả các lõi cho tốc độ.
onik

Câu trả lời:


6

Trình giả lập chậm vì đây là một qemu mô phỏng toàn bộ kiến ​​trúc CPU khác nhau như được sử dụng bởi các PC tiêu dùng: ARM (so với x86 (_64) trên PC của bạn)

Điều này có nghĩa là mọi lệnh CPU trên CPU ARM của trình giả lập phải được mô phỏng, tốc độ chậm . Ngoài ra trình giả lập là AFAIK đơn luồng. Điều này có nghĩa là chỉ có thể đạt được tốc độ tăng tốc nhờ các lõi CPU nhanh - đa lõi sẽ không giúp ích gì ở đây - và một lượng RAM hợp lý.


Giả lập CPU có xu hướng chậm, nhưng trình giả lập điện thoại cũng đang mô phỏng ARM và nó nhanh hơn nhiều. Nó không chỉ là các bộ hướng dẫn. Honeycomb dường như phức tạp hơn nhiều (và có lẽ cần bộ xử lý ARM mạnh hơn). GoogleTV là x86, vì vậy tôi tự hỏi hiệu suất trình giả lập của nó sẽ như thế nào ... (Cho dù họ mô phỏng x86 hay chạy nó như một quy trình riêng.)
idbrii

3

Bạn có thể thử sử dụng trình giả lập bên thứ ba mà theo kinh nghiệm của tôi, hoạt động rất tốt. Tôi sẽ không nói với bạn rằng thỉnh thoảng nó sẽ không bị lag, nhưng hãy dùng thử và bạn sẽ thấy trình giả lập này chạy tốt hơn bao nhiêu.

Nó không phải là một ứng dụng miễn phí, nhưng nó cũng không đắt tiền. Bạn có thể tìm thấy nó tại Trình giả lập Android YouWave . Hãy dùng thử và lấy lại cho chúng tôi;)


0

Honeycomb (3.0) nổi tiếng là chậm trong trình giả lập. Bạn có thể thử để hầu hết các chức năng của bạn hoạt động cho điện thoại trước, để giảm thiểu sử dụng Honeycomb.

Có một số cài đặt BIOS để kích hoạt hỗ trợ ảo hóa trong CPU của bạn. Tôi nghĩ bật chúng lên có thể tăng tốc trình giả lập, nhưng tôi không chắc. (Tên chính xác cho hệ thống của bạn tôi không biết, nhưng chúng sẽ có "ảo hóa" hoặc "vt-x" hoặc một cái gì đó trong tên.

Bạn cũng có thể thử dành một bộ xử lý cho trình giả lập. Bạn có thể thay đổi "mối quan hệ bộ xử lý" cho các quy trình trong Windows bằng trình quản lý tác vụ. Nếu bạn thay đổi nó để trình giả lập của bạn thích một bộ xử lý và các tác vụ chính khác của bạn (như nhật thực) tránh bộ xử lý đó, bạn có thể thấy một số lợi ích. Nếu bộ xử lý của bạn được siêu phân luồng, hãy đảm bảo rằng bạn coi hai lõi ảo là một lõi và gán trình giả lập để thích cả hai lõi ảo.

(Việc tìm kiếm các quy trình có thể dễ dàng hơn với ProcessExplorer vì bạn có thể nhấp vào nút mục tiêu và sau đó nhấp vào một cửa sổ và nó hiển thị cho bạn quy trình cho cửa sổ đó.)


Cập nhật: Xem phần Sử dụng Tăng tốc phần cứng trên tài liệu Android để xem cách sử dụng GPU và hỗ trợ ảo hóa trong CPU của bạn để tăng tốc trình giả lập.


Các bộ hướng dẫn CPU nâng cao sẽ không giúp tăng tốc trình giả lập, vì về cơ bản, đó là qemu mô phỏng CPU ARM.
Lưu lượng

Trừ khi họ giúp qemu xử lý các hướng dẫn ARM với tốc độ nhanh hơn. (Vì vậy, nó có thể phù hợp với tốc độ của ARM.) Hãy nhớ rằng Honeycomb chạy chậm hơn trên trình giả lập so với trên thiết bị thực. Giả sử ARM có hướng dẫn SIMD, nhưng x86 thì không và thay vào đó, nó mô phỏng chúng như các hoạt động nối tiếp. Kích hoạt phần mở rộng CPU SIMD trên x86 sẽ giải quyết vấn đề đó. Điều đó nói rằng, tôi không biết hỗ trợ ảo hóa làm gì, ngoại trừ việc nó nhằm cải thiện hiệu suất khi mô phỏng CPU.
idbrii

Ảo hóa và mô phỏng không giống nhau.
Lie Ryan

@Lie: Đúng, nhưng đó là điểm chính: Hỗ trợ ảo hóa của Intel / AMD (về mặt lý thuyết) làm cho trình giả lập Android nhanh hơn. Ai đó có lẽ không chính xác với cách đặt tên của họ. (Tôi đoán rằng hỗ trợ CPU hoạt động cho cả ảo hóa và mô phỏng CPU, vì vậy các nhà cung cấp CPU không thực sự lạc lõng.) một hệ thống: "QEMU là trình giả lập và ảo hóa máy mã nguồn mở và chung" .
idbrii
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.