OutOfMemory, хотя размер кучи меньше 6 МБ

1

В моей консоли разработчика Android я вижу некоторые сбои с

Caused by: java.lang.OutOfMemoryError: (Heap Size=5795KB, Allocated=3859KB)

Меня удивляет особенно маленький размер кучи (менее 6 МБ).

Как мне интерпретировать этот размер кучи? Является ли этот размер кучи до вызова OOM? Могу ли я предположить, что максимальная куча составляет не менее 16 МБ? Если да, значит ли это, что я попытался выделить блок размером не менее 10 МБ (16 МБ - 6 МБ)?

  • 2
    Укажите код, который вызывает OOM
  • 1
    Я быстро посмотрю, скажите, что вы пытаетесь выделить что-то большее, чем 5795 КБ - 3859 КБ, а размер кучи составляет 6 МБ.
Показать ещё 5 комментариев
Теги:
heap

1 ответ

0

Для проверки состояния памяти вы можете использовать следующее:

ActivityManager actMgr = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.MemoryInfo minfo = new ActivityManager.MemoryInfo();
actMgr.getMemoryInfo(minfo);
if(minfo.lowMemory) { //do something
}
  • 0
    Спасибо за фрагмент кода. Тем не менее, я в основном пытаюсь понять, почему я работаю с OOM, учитывая, что используемая куча составляет около 6 МБ и должно быть (afaik) как минимум 16 МБ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню