#android #memory #java-native-interface #dalvik
#Android #память #java-native-интерфейс #dalvik
Вопрос:
Я пытаюсь устранить проблему с памятью в приложении Android.
Я убежден, что утечка памяти происходит не во внутренней куче, поскольку я тщательно исследовал эту возможность с помощью инструмента анализатора памяти и средства отслеживания кучи / распределения в DDMS.
Я считаю, что для поиска источника проблемы мне нужно посмотреть на распределение во внешней куче, а не во внутренней куче.
10-05 18:17:06.221: DEBUG / dalvikvm (2559): GC_CONCURRENT освободил 1137 КБ, 47% свободных 4556 КБ / 8455 КБ, внешние 1625 КБ / 2137 КБ, приостановлено 6 мс 4 мс
Внешняя цифра — это та, которая выходит из-под контроля перед сбоем.
Есть ли способ сделать это?
Приветствия.
Ответ №1:
Вы использовали инструмент MAT? Это очень полезно.
Если у вас возникли проблемы с памятью из-за растровых изображений, загляните в WeakReference или обязательно вызовите recycle() для своих растровых изображений, когда закончите.
Комментарии:
1. Я изучил MAT, однако он анализирует только распределение данных, выполненное во внутренней куче. Есть ли способ указать этому инструменту на внешнюю кучу? Спасибо.
2. Насколько я знаю, нет. НО большинство проблемных распределений — это Bitmap (которые выделяются из кучи). Ваше приложение вообще работает с Bitmap?