Как отследить и отладить выделение внешней памяти в Android?

Я пытаюсь решить проблему с памятью в приложении для Android.

Я убежден, что утечка памяти не происходит во внутренней куче, так как я тщательно исследовал эту возможность с помощью инструмента «Анализатор памяти» и средства отслеживания кучи/распределения в DDMS.

Я считаю, что для того, чтобы найти источник проблемы, мне нужно посмотреть на распределение во внешней куче, а не во внутренней куче.

10-05 18:17:06.221: DEBUG/dalvikvm(2559): GC_CONCURRENT освобождено 1137 КБ, 47% свободно 4556 КБ/8455 КБ, внешнее 1625 КБ/2137 КБ, пауза 6 мс+4 мс

Внешняя фигура - это та, которая выходит из-под контроля перед аварией.

Есть ли способ сделать это?

Ваше здоровье.


person Zambotron    schedule 05.10.2011    source источник


Ответы (1)


Вы использовали инструмент MAT? Это очень полезно.

http://www.eclipse.org/mat/

Если у вас возникли проблемы с памятью из-за растровых изображений, загляните в WeakReference или обязательно вызовите recycle() для своих растровых изображений, когда закончите.

person tarrant    schedule 05.10.2011
comment
Я изучил MAT, однако он анализирует только распределение данных, сделанное во внутренней куче. Есть ли способ указать этому инструменту внешнюю кучу? Спасибо. - person Zambotron; 06.10.2011
comment
Не то, что я знаю из. НО, большинство тревожных распределений - это растровые изображения (которые выделяются из кучи). Ваше приложение вообще работает с Bitmap? - person tarrant; 06.10.2011