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