Android ==>メモリ分析==> Eclipse Memory Analyzer?
-
29-09-2019 - |
質問
メモリの漏れを確認する必要があります。また、アプリケーションのメモリ割り当てを確認する必要があります。 Eclipse Memory Analyzerをダウンロードしてインストールしましたが、最初のステップはヒープダンプを開くことです。しかし、ヒープダンプとは何か、ヒープダンプを作成するにはどうすればよいですか。そして、私はこのソフトウェアをどのように正確に使用するのか、グーグルをいくつかしましたが、有用な情報が見つかりませんでしたありがとう
解決
アプリをデバッグするときは、開きます DDMS 日食。ツールバーには、Eclipseメモリアナライザーで表示するヒープダンプを生成するために使用できるヒープダンプボタンがあります。これは、1.6+または2.0+ SDKでのみサポートされていると思います。
他のヒント
Dalvik VMのヒープダンプは、Android SDKのツールディレクトリのHPROF.Exeコンバーターツールを使用して、通常のHPROF形式に変換する必要があります。 Eclipse Matまたは他のツールでこのHPROFを開くことができます:yourkit http://www.yourkit.com/とjprobe http://www.quest.com/jprobe/
DDMSに加えて、your app/code(新しいSDKのみ)からHPROFを作成することもできます。 Debug.dumpHprofData(...)
DDMSでは、アプリが使用しているヒープを見ることができることに注意してください。ネイティブヒープは、ビットマップなどの外部リソースが割り当てられていることを示していません。それにもかかわらず、これらのリソースは、メモリリークをチェックする際にも考慮する必要があります。ネイティブとアプリヒープの両方が最大16MB / RESPになると。 24MBは、OOMエラーが発生します。
使用されているネイティブヒープ(つまり、アプリのビットマップによって)を見ることができます。 Debug.getNativHeapAllocatedSize()
.
また、参照してください http://developer.android.com/guide/developing/debugging/ddms.html#profiling
それが役立つ場合は、デバッグAPIを使用して、コードのローカル領域でプロファイリングを有効にすることができます。そのようにして、たとえばTraceViewのトレースを分析すると、冗長性が少なくなります。見る http://macgyverdev.blogspot.com/2011/07/profiling-android-application-tutorial.html たとえば。
また、DDMSヒープダンプを変換する方法に関するいくつかの詳細な情報を使用して、Eclipseメモリアナライザーでそれらを表示し、ドミネーターツリーツーリングを介して漏れているオブジェクトを見つけることができます。 http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html