2013-10-08 11 views
0

Я пытаюсь понять, где часть использования памяти моего приложения происходит с использованием MAT.Отслеживание использования памяти в Android с помощью MAT

Есть некоторые ссылки на растровые изображения, которые, похоже, сохраняют много кучи. Есть ли способ определить, каков фактический ресурс? Изображения обычно поступают из чертежей в приложении. Есть объектные ссылки, но я не могу понять, как развернуть, чтобы определить, какой фактический drawable может занимать память.

enter image description here

Э.Г. есть растровое изображение с сохраненной кучей размером более 1 мб и более 300 КБ

+0

Если вы проследите корни GC, вы можете увидеть, что держится за растровое изображение, что может помочь вам определить, откуда оно взялось. – CommonsWare

+0

@CommonsWare - это «Путь к корням GC», а затем «все ссылки - лучшее, что можно посмотреть»? – Andrew

+0

Должно быть что-то вроде «всех ссылок, кроме слабого/мягкого» или чего-то подобного, что будет немного лучше, но в принципе у вас есть правильная идея. – CommonsWare

ответ

0

Определите свою реальную проблему. Bitmap s этих размеров вполне нормальные: между 200x200px и 500x500px или около того.

Если у вас есть OutOfMemoryError s, при первом приближении приложения мне нравится использовать гистограмму (вторая иконка с тремя синими полосками) и фильтровать по your.package.*Activity. Если слишком много экземпляров, это может означать утечку памяти.

+0

Проблема в том, что мое приложение, похоже, потребляет много памяти (обычно 25-40 мб), но у меня есть отчеты от пользователей о том, что он достигает 100 МБ +. В приложении нет действительно больших изображений. Я думаю, что самое большое - около 20 тыс., Так что я предполагаю, что я ничего не исправляю и не останавливаю GC на некоторых объектах. Я знаю, что некоторые пользователи получают OOM, но я сам не видел – Andrew