Битовые массивы в Android

У меня есть несколько вопросов относительно Растровых объектов и памяти и их общей таксономии.

  1. Что в оперативной памяти или собственным является битовый массив?
  2. Как Растровая память отличается от памяти "кучи"?
29
задан Samuh 22 December 2009 в 09:20
поделиться

2 ответа

Память, которая поддерживает объект Bitmap, выделяется с помощью нативного кода (malloc()), а не с помощью ключевого слова Java new. Это означает, что память управляется непосредственно операционной системой, а не Dalvik.

Единственная реальная разница между нативной кучей и кучей Dalvik заключается в том, что куча Dalvik - это мусор, а нативная - нет.

Для этих целей, однако, здесь не так уж много различий. Когда ваш объект Bitmap получает собранный мусор, деструктор будет перерабатывать соответствующую память в нативной куче.

Источник:

33
ответ дан 28 November 2019 в 01:01
поделиться

Здесь есть важная тонкость: хотя пиксели Bitmap выделяются в собственной куче, некоторые специальные уловки в Dalvik вызывают это для учета в куче Java. Это делается по двум причинам:

(1) Для управления объемом памяти, который выделяется приложением. Без учета приложение могло бы выделить огромный объем памяти (поскольку сам объект Bitmap очень мал, но может удерживать произвольно большой объем собственной памяти), выходя за пределы кучи 16 МБ или 24 МБ.

(2 ) Чтобы помочь определить, когда делать сборку мусора. Без учета вы могли бы размещать и освобождать ссылки, скажем, на 100 объектов Bitmap; сборщик мусора не запускается, потому что эти объекты крошечные, но на самом деле они могут представлять большое количество мегабайт фактических выделений, которые сейчас не собираются своевременно. Учет этих выделений в куче Java, сборщик мусора будет работать, поскольку он думает, что память используется.

Обратите внимание, что во многих отношениях это деталь реализации; весьма вероятно, что это может измениться в будущем, хотя это базовое поведение останется в той или иной форме, поскольку это обе важные характеристики для управления распределением битовых карт.

Обратите внимание, что во многом это деталь реализации; весьма вероятно, что это может измениться в будущем, хотя это базовое поведение останется в той или иной форме, поскольку это обе важные характеристики для управления распределением битовых карт.

Обратите внимание, что во многом это деталь реализации; весьма вероятно, что это может измениться в будущем, хотя это базовое поведение останется в той или иной форме, поскольку обе эти характеристики являются важными характеристиками для управления распределением битовых карт.

32
ответ дан 28 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: