Другое место, где объясняются сообщения сборщика мусора Dalvik, - это видео: Google I / O 2011: управление памятью для приложений Android
Примерно через 14 минут после презентации онразбивает формат сообщения(Кстати, у этого видео действительно хорошая информация об устранении утечек памяти)
Грубо говоря, формат [Reason] [Amount Freed], [Heap Statistics], [External Memory Statistics], [Pause Time]
Причина
Виктор / Роберт уже объяснили GC_CONCURRENT
, GC_FOR_MALLOC
, GC_EXTERNAL_ALLOC
.
Существует также:
GC_HPROF_DUMP_HEAP
- Если вы выгрузите кучу, нажав кнопку «Отменить кучу» в DDMS илипрограммно
GC_EXPLICIT
- Если вы звоните System.gc ()
Сумма Freed
Например freed 2125K
Не требует объяснений
Статистика кучи
Например 47% free 6214K/11719K
Эти цифры отражают условия после запуска ГХ.«47% свободного» и 6214K отражают текущее использование кучи.11719K представляет общий размер кучи.Из того, что я могу сказать, куча может расти / уменьшаться, поэтому вы не обязательно будете иметь ошибку OutOfMemoryError, если вы достигнете этого предела.
Статистика внешней памяти
Например external 7142K/8400K
Примечание. Это может существовать только в версиях Android, предшествующих Honeycomb (до 3.0).
Перед Honeycomb битовые карты выделяются вне вашей виртуальной машины (например, Bitmap.createBitmap () выделяет битовую карту извне и выделяет тольконесколько десятков байтов в вашей локальной куче).Другие примеры внешнего выделения для java.nio.ByteBuffers.
Время паузы
Если это параллельное событие GC, в списке будет два раза.Один - для паузы перед GC, другой - для паузы, когда GC в основном делается.Например, paused 3ms+5ms
Для не одновременных событий GC существует только одна пауза, которая обычно намного больше.Например paused 87ms