Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Измерить (Android) фрагментацию кучи?

Автор вопроса: Jon ShemitzОтветов: 1

У нас есть приложение с большим количеством растровых изображений в памяти. Он продолжает терпеть неудачу с

java.lang.OutOfMemoryError: bitmap size exceeds VM budget

ошибки. Возможно, мы действительно используем слишком много памяти; возможно, у нас происходит утечка памяти; также возможно, что мы не делаем ничего плохого, и нас убивает фрагментация кучи. (Поскольку сборщик мусора Android не перемещает активные блоки, у нас могут быть свободные мегабайты, и мы не сможем выделить 50 КБ.)

Есть ли способ исключить фрагментацию? Я искал что-то вроде maxAvail/memAvail, но не нашел ничего подходящего.

  • Проверьте stackoverflow.com/questions/1955410/< /а> Torid 03.12.2011
  • Спасибо, @Торид. Такой подход может быть тем, что нам нужно сделать... если выяснится, что мы действительно используем слишком много памяти. На данный момент, однако, мы все еще пытаемся выяснить, какая у нас проблема. Jon Shemitz 03.12.2011

androidheapfragmentation

Ответы

Ответ 1 · рейтинг 1 · smith324

Я хотел бы изучить кучу через MAT. Анализатор памяти Eclipse поможет вам определить, какие из предложенных проблем у вас действительно есть.

На Google I/O 2011 состоялся доклад, в котором были рассмотрены некоторые основы управления памятью и отладки. Вы можете посмотреть его онлайн здесь: http://www.youtube.com/watch?v=_CruQY55HOk&feature=relmfu

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы