• 1000 составляет 237 716 272 байта (237 МБ).
Если я отсортирую кучу по типу, я обнаружу, что byte [] виноват в 234 214 768 байтах моего распределения или колоссальных 98,52% профилированной памяти.
Я вошел в представление экземпляра и могу посмотрите, что 10 byte[]
верхних распределений все проходят через
createBitmap:977, Bitmap (android.graphics)
Итак, эти byte[]
явно являются изображениями. Размеры их следующие:
- 11,137,024
- 11,128,832
- 9,592,832
- 9,592,832
- 9,592,832
- 9,592,832
- 9,592,832
- 9,592,832
- 9,592,832
Теперь в моем приложении есть пара больших полноэкранных изображений, поэтому первые два выделения имеют смысл. Что не имеет смысла, так это то, что идет после, то есть объект размером 9 592 832, повторяемый 22 раза ... или 211 МБ данных. Есть ли способ открыть byte [] из профилировщика памяти и посмотреть, что находится в некоторых из этих объектов одинакового размера? Очевидно, что устранение некоторых из них значительно улучшило бы память моего распределения. Любые другие советы или предложения приветствуются, я знал AndroidStudio и его инструменты, и я все еще копаюсь в документации и изучаю основы.
Спасибо!