Windows 7 x64でのAndroidエミュレーターのパフォーマンスの向上


9

私はWindows 7 x64でEclipse Heliosを実行しています。他の開発ツールでパフォーマンスの問題を経験したことがないので、4.0 GBのCore 2 Duo 2.0 Ghzで十分だと思います。

Androidエミュレーター(2.3.3と3.0の両方)で最初のアプリを実行すると、OSのロードに少なくとも5分かかり、最初はHelloAndroidアプリも実行しませんでした。なんとかアプリケーションを実行できたとしても、そのパフォーマンスは耐え難いものでした。

パフォーマンスを改善するためにさまざまなことを試みましたが、大きな改善は示されていません。何かが足りないと思います。

私が試したこと:

AVD Managerで

  1. デバイスのRAMサイズを512に。
  2. 640 x 480の解像度。
  3. スナップショットが有効になっています。

プロジェクト設定\ Android

  1. \ Launch \ -cpu-delay 0 -no-boot-anim -cache ./cache -avd Android3

私が試すことができないもの:-デバイスにデプロイする(何もない)。

ちなみに、MAC Mini 2.66 GHz 2 GBでも同じ問題が発生しましたが、これらの設定が違いを生みました。

誰もがこの不完全なパフォーマンスを改善するためのヒントを与えることができますか?


ハイパースレッディング@ 2.8 GHzのクアッドコアと非常識なビデオカードを入手してください。へえ。しかし真剣に、エミュレーターは遅いです。一般的に言って、ハードウェアが1桁強力でない限り、エミュレーションは常に遅くなります。私はあなたがあなたがそれをあなたが既に持っているよりもずっとうまく機能させるつもりだとは思わない。
マシューは、

6
実際には、エミュレータは複数のコアを(まだ)サポートしていません。したがって、クロック速度は本当に重要です。私の新しい開発マシンでも、特にハニカムでパフォーマンスの問題があります。私は、最新のi7クアッドコア、8 GBのメモリ、およびソリッドステートハードドライブについて話しています。
ブライアンデニー

ハ、それで私の古い3.0 GHz Pentium 4はそれをもっと上手く動かすはずです(バックグラウンドで他にメジャーなものは何もありません)?クレイジー。
マシュー

@Bryan Dennyエミュレータはマルチスレッドではありませんが、マルチコアを与えると、ワークロードを使用頻度の低いコアにシフトできますが、これにより安定性が低下し、定期的なクラッシュが発生します。つまり、速度と安定性のトレードオフですが、速度のためにすべてのコアを使用することを好みます。
onik 2011

回答:


6

それはコンシューマーPCで使用されるようにまったく異なるCPUアーキテクチャをエミュレートするqemuであるため、エミュレーターは遅いです:ARM(vs. x86(_64)対PC)

これは、エミュレータのARM CPU上のすべてのCPU命令をエミュレートする必要があることを意味し、それ自体が低速です。また、エミュレータはAFAIKシングルスレッドです。これは、高速化は高速のCPUコア(マルチコアはここでは役に立たない)と妥当な量のRAMによってのみ達成できることを意味します。


CPUのエミュレーションは遅くなる傾向がありますが、電話エミュレータもARMをエミュレートしており、はるかに高速です。単なる命令セットではありません。Honeycombははるかに複雑に見えます(おそらく、より強力なARMプロセッサが必要です)。私はのような...そのエミュレータのパフォーマンスがどうなるか疑問に思うので、GoogleTVは、x86のである(彼らは、x86をエミュレートするか、ネイティブプロセスとして実行するかどうか。)
idbrii

3

私の経験では、非常にうまく機能するサードパーティのエミュレータを使用してみることができます。時々遅れることはありませんが、試してみると、このエミュレータがどれほど優れているかがわかります。

これは無料のアプリケーションではありませんが、高価でもありません。YouWave Android Emulatorで見つけることができます。トライアルを試して、私たちに戻ってください;)


0

Honeycomb(3.0)はエミュレータで非常に遅いです。Honeycombの使用を最小限に抑えるために、最初に電話でほとんどの機能を動作させることができます。

CPUで仮想化サポートを有効にするBIOS設定がいくつかあります。これらをオンにするとエミュレータの速度が上がると思いますが、よくわかりません。(システムの正確な名前はわかりませんが、名前に「仮想化」または「vt-x」などが含まれています。

プロセッサをエミュレータ専用にすることもできます。タスクマネージャを使用して、Windowsのプロセスの「プロセッサアフィニティ」変更できます。エミュレーターが1つのプロセッサーを優先し、他の主なタスク(Eclipseなど)がそのプロセッサーを回避するように変更すると、いくつかの利点が得られる場合があります。プロセッサがハイパースレッドの場合は、2つの仮想コアを1つのコアとして扱い、エミュレータが両方の仮想コアを優先するように割り当ててください。

(ターゲットボタンをクリックしてからウィンドウをクリックすると、そのウィンドウのプロセスが表示されるため、ProcessExplorerを使用するとプロセスを簡単に見つけることができます。)


更新: CPUでGPUと仮想化サポートを使用してエミュレータを高速化する方法については、Androidドキュメントの「ハードウェアアクセラレーション使用セクションを参照してください。


強化されたCPU命令セットは、基本的にARM CPUをエミュレートするqemuであるため、エミュレータの高速化に役立ちません。
フロー

qemuがARM命令をより高速で処理するのに役立つ場合を除きます。(そのため、ARMのレートと一致する可能性があります。)Honeycombは、実際のデバイスよりもエミュレータでの実行が遅いことに注意してください。ARMにはSIMD命令があったが、x86にはなかったため、シリアル演算としてそれらをエミュレートしたとします。x86でSIMD CPU拡張機能を有効にすると、その問題を解決できます。そうは言っても、CPUのシミュレーション時にパフォーマンスを向上させることを目的としていることを除いて、仮想化サポートが何を行うかはわかりません。
idbrii

仮想化とエミュレーションは同じではありません。
ライライアン

@Lie:真実ですが、それはおかしなことです:Intel / AMDの仮想化サポートは(理論的には)Androidエミュレーターをより高速にします。誰かがおそらくその名前を不正確にしています。(CPUサポートは仮想化とCPUエミュレーションの両方で機能すると思います。したがって、CPUベンダーは実際には不評ではありません。)一体、同じではないからといって、それらを組み合わせることはできないというわけではありません1つのシステム:「QEMUは、一般的なオープンソースのマシンエミュレーターおよびバーチャライザーです。
idbrii
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.