проблема распределения изображений - PullRequest
0 голосов
/ 22 января 2010

У меня есть 3 UIImages в UIScrollView, и я инициализирую эти изображения следующим образом:

UIImage *dimage = [[UIImage alloc] initWithData:data];

Где данные - это NSdata, полученные из URL-запроса. После этого я кеширую картинки. Когда я проверяю выделение памяти, 3 изображения занимают 472 Кбайт каждое, и выделение было запрошено "img_data_lock" из библиотеки CoreGraphics. Когда я проверял размер этого образа в кеше на диске, он составлял 230 КБ каждый.

Я не знаю, как это займет больше места. Я надеюсь, что мой вопрос ясен.

1 Ответ

0 голосов
/ 22 января 2010

Не уверен, на какой «дисковый кеш» вы обращаетесь, но использование памяти и диска слабо связано. Данные, используемые для создания UIImage, являются лишь частью данных, которые фактически использует объект. Это означает, что активный объект может использовать больше памяти, чем данные, которые его создали.

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

...