Вопрос

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

Это было полезно?

Решение

Когда вы отлаживаете свое приложение, откройте DDMS. в затмении. На панели инструментов есть кнопка сброса кучи, которую вы можете использовать для создания дампа кучи для просмотра в анализаторе памяти Eclipse. Это поддерживается только я думаю, что с SDK 1,6+ или 2,0+.

Другие советы

Дамп кучи Dalvik VM должен быть преобразован в обычный формат HPROF, используя инструмент преобразователя HPROF-CONV.EXE в каталоге инструментов Android SDK. Вы можете открыть этот HPROF с Eclipse Mat или другими инструментами: Yourkit http://www.yourkit.com/и жпруб http://www.quest.com/jprobe/

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

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

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

Также см http://developer.android.com/guide/developing/debugging/ddms.html#profiling.

Если это поможет, вы можете включить профилирование по локальным областям кода, используя API Debug. Таким образом, у вас есть меньше многословности при анализе следов, например, TraceView. Видеть http://macgyverdev.blogspot.com/2011/07/profiling-android-application-tutorial.html. Например.

И еще одна подробная информация о том, как преобразовать дампы кучи DDMS, чтобы вы могли просматривать их в анализаторе памяти Eclipse и находить свои объекты по утечке через Dreainator Tree Tools: http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top