Tingkatkan Kinerja Android Emulator pada Windows 7 x64

9

Saya menjalankan Eclipse Helios pada Windows 7 x64. Saya memiliki Core 2 Duo 2.0 Ghz dengan 4.0 GB yang saya pikir sudah cukup, karena saya tidak pernah memiliki masalah kinerja dengan alat pengembangan lainnya.

Ketika saya menjalankan aplikasi pertama saya di Android Emulator (baik 2.3.3 dan 3.0) butuh setidaknya 5 menit untuk memuat OS dan pada awalnya itu bahkan tidak menjalankan aplikasi HelloAndroid. Bahkan ketika saya berhasil menjalankan aplikasi, kinerjanya tidak tertahankan.

Saya sudah mencoba berbagai hal untuk meningkatkan kinerja, tetapi tidak ada peningkatan besar yang ditunjukkan. Saya pikir saya kehilangan sesuatu.

Hal yang saya coba:

Di AVD Manager

  1. Ukuran RAM perangkat hingga 512.
  2. Resolusi ke 640 x 480.
  3. Snapshot diaktifkan.

Pada preferensi Proyek \ Android

  1. \ Luncurkan \ -cpu-delay 0 -tidak ada-boot-anim -cache ./cache -avd Android3

Hal-hal yang tidak dapat saya coba: - Menggunakan perangkat (tidak punya).

By the way, saya punya masalah yang sama pada MAC Mini 2,66 GHz 2 GB tetapi pengaturan ini membuat perbedaan.

Adakah yang bisa memberikan tips untuk meningkatkan kinerja lumpuh ini?

mikywan
sumber
Dapatkan quad-core dengan hyperthreading @ 2,8 GHz dan kartu video gila. Heh. Tapi serius, emulatornya lambat. Secara umum, emulasi selalu lambat kecuali perangkat keras Anda lebih kuat. Saya tidak berpikir Anda akan membuatnya bekerja lebih baik daripada yang sudah Anda miliki.
Matius Baca
6
Sebenarnya, emulator tidak mendukung banyak core (belum). Jadi kecepatan clock sangat penting. Bahkan pada mesin dev baru saya, saya punya masalah kinerja, terutama dengan honeycomb. Saya berbicara tentang i7 quad core terbaru, memori 8 gb dan hard drive solid state.
Bryan Denny
Ha, jadi 3.0 GHz Pentium 4 lama saya harus menjalankannya lebih baik (tanpa latar belakang utama)? Gila.
Matius Baca
@Bryan Denny Meskipun emulator tidak multithread, memberikannya beberapa core membantu memindahkan beban kerja ke core yang lebih jarang digunakan, tetapi ini mengurangi stabilitas, yang mengakibatkan crash secara berkala. Jadi ini adalah tradeoff kecepatan / stabilitas, tapi saya lebih suka menggunakan semua core untuk kecepatan.
onik

Jawaban:

6

Emulator lambat karena qemu yang mengemulasi arsitektur CPU yang sama sekali berbeda seperti yang digunakan oleh PC konsumen: ARM (vs x86 (_64) pada PC Anda)

Ini berarti bahwa setiap instruksi CPU pada ARM CPU emulator harus ditiru, yang lambat . Juga emulatornya adalah AFAIK single-threaded. Ini berarti bahwa mempercepat hanya dapat dicapai oleh core CPU cepat - multi-core tidak akan membantu di sini - dan jumlah RAM yang wajar.

Mengalir
sumber
Mengemulasi CPU cenderung lambat, tetapi emulator telepon juga meniru ARM dan jauh lebih cepat. Ini lebih dari sekedar set instruksi. Honeycomb tampaknya jauh lebih kompleks (dan mungkin membutuhkan prosesor ARM yang lebih kuat). GoogleTV adalah x86, jadi saya ingin tahu seperti apa kinerja emulatornya ... (Apakah mereka meniru x86 atau menjalankannya sebagai proses asli.)
idbrii
3

Anda dapat mencoba menggunakan emulator pihak ketiga yang menurut pengalaman saya, bekerja dengan sangat baik. Saya tidak akan memberi tahu Anda bahwa itu tidak akan ketinggalan dari waktu ke waktu, tetapi lakukan uji coba dan Anda akan melihat seberapa baik emulator ini berjalan.

Ini bukan aplikasi gratis, tetapi juga tidak mahal. Anda dapat menemukannya di YouWave Android Emulator . Cobalah percobaan dan kembali kepada kami;)

Hallaghan
sumber
0

Honeycomb (3.0) terkenal lambat di emulator. Anda bisa mencoba agar sebagian besar fungsi Anda berfungsi untuk telepon terlebih dahulu, untuk meminimalkan penggunaan Honeycomb.

Ada beberapa pengaturan BIOS untuk mengaktifkan dukungan virtualisasi di CPU Anda. Saya pikir menyalakan ini dapat mempercepat emulator, tapi saya tidak yakin. (Nama persis untuk sistem Anda saya tidak tahu, tetapi mereka akan memiliki "virtualisasi" atau "vt-x" atau sesuatu dalam nama tersebut.

Anda juga dapat mencoba mendedikasikan prosesor ke emulator. Anda dapat mengubah "afinitas prosesor" untuk proses di Windows menggunakan task manager. Jika Anda mengubahnya sehingga emulator Anda lebih suka satu prosesor dan tugas utama Anda lainnya (seperti gerhana) menghindari prosesor itu, Anda mungkin melihat beberapa keuntungan. Jika prosesor Anda mengalami hyperthreaded, pastikan Anda memperlakukan dua core virtual sebagai satu inti dan menetapkan emulator untuk memilih kedua core virtual tersebut.

(Menemukan proses mungkin lebih mudah dengan ProcessExplorer karena Anda dapat mengklik tombol target dan kemudian mengklik jendela dan itu menunjukkan kepada Anda proses untuk jendela itu.)


Pembaruan: Lihat bagian Menggunakan Akselerasi Perangkat Keras pada dokumen Android untuk melihat cara menggunakan dukungan GPU dan virtualisasi di CPU Anda untuk mempercepat emulator.

idbrii
sumber
Kumpulan instruksi CPU yang disempurnakan tidak akan membantu mempercepat emulator, karena pada dasarnya qemu yang mengemulasi CPU ARM.
Alur
Kecuali jika mereka membantu qemu memproses instruksi ARM lebih cepat. (Jadi itu bisa menyamai tingkat ARM.) Ingatlah bahwa Honeycomb berjalan lebih lambat pada emulator daripada pada perangkat nyata. Katakanlah ARM memiliki instruksi SIMD, tetapi x86 tidak dan sebaliknya meniru mereka sebagai operasi serial. Mengaktifkan ekstensi CPU SIMD pada x86 akan menyelesaikan masalah itu. Yang mengatakan, saya tidak tahu apa yang dukungan virtualisasi lakukan, kecuali bahwa itu dimaksudkan untuk meningkatkan kinerja ketika mensimulasikan CPU.
idbrii
Virtualisasi dan persaingan tidak sama.
Lie Ryan
@ Lie: Benar, tapi itu intinya: Dukungan virtualisasi Intel / AMD (secara teoritis) membuat emulator Android lebih cepat. Seseorang mungkin tidak tepat dengan penamaan mereka. (Saya kira dukungan CPU berfungsi untuk virtualisasi dan emulasi CPU, sehingga vendor CPU tidak benar-benar melenceng.) Heck, hanya karena mereka tidak sama bukan berarti mereka tidak dapat digabungkan dalam satu sistem: "QEMU adalah emulator dan virtualizer mesin generik dan open source" .
idbrii