Какао / ObjC: высокая загрузка памяти при загрузке большого количества изображений при включенном GC? - PullRequest
0 голосов
/ 13 декабря 2011

Я кодировал простую программу просмотра изображений, которая просто случайным образом скользит по изображениям в ~/Pictures.

Для каждого нового перехода я создаю и загружаю NSImage, затем создаю новый NSImageView и устанавливаю его как новое подпредставление, а старое подпредставление удаляется.

Это в основном все. Память постоянно растет с каждой новой картинкой, и я удивляюсь, почему. Я ожидал бы, что он останется очень низким и всегда будет в основном постоянным.

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

Полный (соответствующий) код можно увидеть здесь (уже значительно упрощено - большая часть функциональности удалена, однако утечка сохраняется).

ARC отключен.

Интересный бит: когда я отключаю ObjC GC, это как и ожидалось. Он остается (относительно) низким.

1 Ответ

0 голосов
/ 13 декабря 2011

Вы пытались установить newImageView для автоматического выпуска?

...