Сколько памяти занимает декодированная картинка
Вопрос
JPEG 4000×3000 весит на диске 2 МБ. Сколько примерно памяти займёт его декодированное изображение в формате RGBA?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- Около 48 МБ: 4000 × 3000 × 4 байтаправильный ответ
- Около 2 МБ, как файл
- Около 12 МБ: по байту на пиксель
- Зависит только от размера
UIImageView
Разбор
Сжатие JPEG действует только на диске. Для отрисовки картинка декодируется в битмап: ширина × высота × 4 байта на пиксель (RGBA), то есть 48 МБ. Десяток таких в ленте и приложение убьёт система. Решение: downsampling через ImageIO (CGImageSourceCreateThumbnailAtIndex) до размера, в котором картинка показывается. Размер view на память исходного битмапа не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Бюджет кадра на iPhone с ProMotion
Следующий вопрос
Приложение пропадает без крэш-лога
Ещё по теме «Производительность и тестирование»
- Тест в Swift Testing
- Hang и hitch: разница
- Пирамида тестов в iOS
- Тестирование сетевого слоя через URLProtocol
- Задача на Swift: статистика рывков по длительностям кадров
- Задача на Swift: худший отрезок кадров скользящим окном
- Как ускорить запуск приложения
- Шаблоны Instruments