В моем Mac-приложении, которое я сейчас разрабатываю, у меня есть iKImageBrowserView
, который отображает что-то вроде 500/1000 изображений.
Отключение отображения изображения, потребление памяти очень низкое - около 50 МБ.
Включение отображения изображений, потребление памяти очень высоко, около 500 МБ.
Каждый раз, когда я прокручиваю вверх / вниз, использование памяти увеличивается.
Вот фрагмент кода imageBrowser:itemAtIndex
:
..
MyBrowserNSImageItem *item = [[MyBrowserNSImageItem alloc] initWithCover:coverImage andId:myFile];
return [item autorelease];
где coverImage
читается из кэша объектов и не каждый раз инициализируется.
Как я могу уменьшить использование памяти?
Обновление : Я пытался использовать imageVersion
: из DataSourceProtocol, но все еще интенсивно используется память. Если я инициализирую изображения, но не передаю их в память ikImageBrowserView, недостаточно памяти.
Другое обновление : Я сделал еще один тест. Каждый раз я выделяю объект простым PNG-изображением. И на этот раз памяти мало. Проблема возникает только тогда, когда я использую реальные изображения. Они JPG около 50/100 КБ. Вероятно, когда они загружены в память, они распаковываются. Как я могу уменьшить использование памяти NSImage?
Обновление : Проблема в качестве JPEG. Они потребляют слишком много памяти при отображении. Итак, вопрос: КАК сгенерировать миниатюру памяти / качества в Какао?