Выбор ответа Middle Производительность и утечки памяти обновлено
Сколько памяти занимает Bitmap
Вопрос
Сколько примерно памяти занимает декодированный Bitmap 4000×3000 в формате ARGB_8888?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Около 48 МБ. ARGB8888 хранит 4 байта на пиксель: 4000 × 3000 × 4 = 48 000 000 байт, около 48 МБ, независимо от размера сжатого файла.
Варианты ответа
- Около 4 МБ
- Около 12 МБ
- Около 48 МБправильный ответ
- Столько же, сколько JPEG-файл на диске
Разбор
ARGB_8888 хранит 4 байта на пиксель: 4000 × 3000 × 4 = 48 000 000 байт, около 48 МБ, независимо от размера сжатого файла. Поэтому картинки декодируют под размер view (Coil и Glide делают это сами, вручную inSampleSize) и не держат полноразмерные копии в памяти. Несколько таких картинок в списке быстро приводят к OutOfMemoryError.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.