проблемы с памятью в UIImage при загрузке 2000 изображений - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь запустить анимацию, изменяя изображения моего UIImageView.Мне нужно около 200 изображений 24K, чтобы создать 5-секундную анимацию.Я могу загрузить все изображения в память (в NSArray), но когда я запускаю анимацию (переключая UIImage UIImageView) - после примерно 60 изображений я получаю предупреждение памяти, и если я продолжаю отображать изображения, приложение вылетает,

1 Ответ

2 голосов
/ 17 февраля 2012

То, что ваши файлы изображений имеют размер 24 КБ на диске, не означает, что это объем памяти, который они будут занимать.

Если у вас есть изображение размером 480x960 с 1 байтом на пиксель, это можеттолько небольшой размер файла из-за сжатия (например, JPEG), но когда он находится в памяти в вашем приложении, он будет 450 КБ.Умножьте это на 60 (точка, в которой вы получите предупреждение о памяти), и вы увидите, что это приблизительно 27 МБ.

Если ваши изображения больше или имеют большую глубину цвета, то, очевидно, они будут занимать больше памяти,Я думаю, что однажды прочитал, что iOS выдает предупреждение о памяти, когда вы нажимаете 22Mb, но это включает и другую память, выделенную вашему приложению для других вещей.

И только потому, что ваше приложение «загружает» изображения вмассив, не означает, что он на самом деле загружает его в память или расширяет до тех пор, пока он ему действительно не нужен.

Итак, чтобы подсчитать, сколько памяти будет использовать ваше изображение, не смотрите на размер файла., но вместо этого работайте с размерами изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...