Уменьшение памяти UII-изображений с камеры с помощью инструментов.

Мое приложение, использующее ARC, делает следующее:

  1. Загружает изображение, снятое камерой
  2. Сжимает изображение для использования в качестве эскиза.
  3. Я делаю это с помощью [UIImage imageWithData: UIImageJPEGRepresentation (original, 0.1f)]
  4. Я установил ссылку на несжатое изображение на nil, чтобы ARC освободил память.

Повторение этой последовательности будет означать, что несколько сжатых эскизов находятся на Примерно через 7 или 8 изображений приложение выйдет из строя из-за нехватки памяти.

В инструментах я пытаюсь использовать распределения в тандеме с монитором памяти, чтобы найти источник моей проблемы.

Некоторые характеристики инструментов:

Распределение - Живые байты увеличиваются примерно на 2 МБ после съемки, но затем уменьшаются на 1,5 МБ после установки нулевого значения ссылки на исходное изображение. Вроде бы хорошо, но ...

Вот конечное состояние приложения. #Living кажется очень большим по сравнению с Live Bytes, не так ли?

  Live Bytes  #Living   #Transitory  Overall   #Overall Bytes    
   3.72 MB    24538     80679        90.1 MB   105301

Монитор памяти (отслеживающая инспекционная головка) - Мое приложение запускается с 7,5 МБ, и при получении одного снимка этот размер увеличивается на ~ 13 МБ. Для состояния, которое я перечислил выше, Memory Monitor сообщает, что приложение занимает 72,67 МБ «реальной памяти» и 123,79 МБ виртуальной памяти.

Учитывая, что Live Bytes очень малы, я знаю, что что-то делаю правильно. Однако, учитывая, что объем памяти в других местах велик, я также уверен, что делаю что-то очень не так. Есть идеи, что это может быть или как его отследить?

6
задан Eitan 12 January 2012 в 01:23
поделиться