Android: Средство анализа памяти: определите, где размещены объекты

На некоторых устройствах Android (Nexus 5, 5.1.1) наблюдается утечка памяти.

Мы получили несколько дампов памяти и прогнали их с помощью инструмента Eclipse Memory Analyzer, и оказалось, что количество байтовых массивов, которые не очищаются, увеличивается.

введите здесь описание изображения

Вкладка справа показывает состояние при запуске приложения, а вкладка слева показывает примерно через 20 циклов приложения. (Приложение в конечном итоге вызовет oom, если оставить его цикл)

Как использовать этот инструмент для отслеживания места размещения этих байтовых массивов?


person iakiak    schedule 04.04.2017    source источник
comment
Найдите имя класса, проверьте, кто хранит ссылку на этот класс. Слева вверху - Имя класса - это их (Поиск вашей деятельности или фрагмента и просмотр деталей, щелкнув)   -  person Keyur Thumar    schedule 04.04.2017


Ответы (1)


Я думаю, что вы стали немного "хардкорнее".

Почему бы вам не воспользоваться отслеживанием распределения? Вы можете увидеть, где именно был создан экземпляр объекта.

введите здесь описание изображения


Вот пошаговое руководство по отслеживанию распределения.

введите здесь описание изображения

введите здесь описание изображения

person azizbekian    schedule 04.04.2017
comment
Спасибо за чаевые. Я посмотрел, но мне кажется, что этот инструмент отслеживает все распределения в тестовом периоде, а не только текущие объекты. Это по-прежнему затрудняет определение того, какие именно массивы байтов не очищаются. - person iakiak; 04.04.2017