Android ==> Анализ памяти ==> Анализатор памяти Eclipse?

Мне нужно проверить приложение на утечку памяти, мне также нужно увидеть распределение памяти моего приложения. Я загрузил и установил анализатор памяти eclipse, и, похоже, первым шагом является открытие дампа кучи. Но что такое куча кучи, как я могу создать кучу кучи. И как именно я собираюсь использовать это программное обеспечение, я сделал некоторые поисковые запросы, но я не мог найти никакой полезной информации спасибо

Ответ 1

При отладке приложения откройте DDMS в Eclipse. На панели инструментов есть кнопка сброса кучи, которую вы можете использовать для создания дампа кучи для просмотра в анализаторе памяти Eclipse. Это поддерживается только, я думаю, с 1.6+ или 2.0+ SDK.

Ответ 2

Дамп кучи dalvik VM необходимо преобразовать в обычный формат hprof с помощью инструмента конвертера hprof-conv.exe в каталог инструментов Android SDK. Вы можете открыть этот hprof с помощью Eclipse MAT или других инструментов: YourKit http://www.yourkit.com/ и JProbe http://www.quest.com/jprobe/

Помимо DDMS вы также можете создать hprof из вашего приложения/кода (только новые SDK) через Debug.dumpHprofData(...)

Обратите внимание, что в DDMS вы можете видеть кучу, которую использует ваше приложение. Он не показывает родную кучу, которую выделяют внешние ресурсы, такие как растровые изображения. Тем не менее, эти ресурсы также необходимо учитывать при проверке утечек памяти. Когда и родная, и куча приложений добавляет до 16 МБ/соответственно. 24MB вы получите ошибку OOM.

Вы можете увидеть встроенную кучу, которая была использована (то есть растровыми изображениями в вашем приложении) через Debug.getNativHeapAllocatedSize().

Ответ 3

Также см. 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 Memory Analyzer и находить свои протекающие объекты с помощью инструмента дерева доминирования: http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html