Вступить в клуб →
средняявопросПроизводительность и Instruments

Галерея из 20 миниатюр 80×80 занимает почти гигабайт памяти

imageView.image = UIImage(contentsOfFile: photoURL.path)
// imageView — 80×80 pt, фото с камеры 4000×3000 px, JPEG около 3 МБ

Экран с 20 миниатюрами поднимает потребление памяти примерно на 900 МБ, на старых iPhone приложение завершается системой. Почему так много и что делать?

  • Картинка декодируется в полный размер — уменьшать
  • JPEG в памяти занимает столько же, сколько на диске
  • UIImageView кэширует каждую картинку трижды
  • Нужно включить clipsToBounds у imageView

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела