Грязная память ImageIO не очищается автоматически iOS
Я создаю приложение, которое является своего рода галереей - оно показывает различный медиа-контент в качестве полноэкранного средства просмотра. Инструмент распределения показывает, что параметр Live Bytes нет выше 40 Мб при использовании приложения. Тем временем приложение на 100% уничтожается после того, как я пролистываю страницы 20-30 раз. Я проверил параметр Dirty Memory и обнаружил, что он в 10 раз больше размера Live Bytes. И большая часть этой грязной памяти потребляется Image IO:
Снимок экрана http://i40.tinypic.com/25ge51i.jpg
РЕДАКТИРОВАТЬ, еще один скриншот:
Снимок экрана http://i40.tinypic.com/9t1mh5.png
Вышеуказанные пики распределения - это переключение медиа контента видео / изображения. Проблема в том, что грязная память растет почти линейно, и мне нужно как-то ее освободить.
Теперь о дизайне приложений. Экран приложения имеет один вид горизонтальной прокрутки. Представление прокрутки содержит видео или объекты коллажа, которые содержат несколько изображений. Для экономии памяти одновременно создаются только три страницы - текущая страница и страницы слева / справа. Так что страницы всегда создаются и удаляются на лету при скользящем просмотре прокрутки.
Все изображения, которые я загружаю, используя[UIImage imageWithContentOfFile: path]
метод. Объект Collage хранит экземпляры UIImage внутри imagesArray. В методе dealloc атрибут imagesArray очищается.
Итак, вопросы:
Это своего рода системная ошибка в[UIImage imageWithContentOfFile?]
Это Image IO кеш?Могу ли я это очистить?