Я кодировал простую программу просмотра изображений, которая просто случайным образом скользит по изображениям в ~/Pictures
.
Для каждого нового перехода я создаю и загружаю NSImage
, затем создаю новый NSImageView
и устанавливаю его как новое подпредставление, а старое подпредставление удаляется.
Это в основном все. Память постоянно растет с каждой новой картинкой, и я удивляюсь, почему. Я ожидал бы, что он останется очень низким и всегда будет в основном постоянным.
Я попытался отладить его, и инструмент профилировщика не обнаружил утечку памяти, поэтому я думаю, что на него все еще ссылаются, или он более сложный. Однако большая часть памяти берется из функции ImageIO_malloc
.
Полный (соответствующий) код можно увидеть здесь (уже значительно упрощено - большая часть функциональности удалена, однако утечка сохраняется).
ARC отключен.
Интересный бит: когда я отключаю ObjC GC, это как и ожидалось. Он остается (относительно) низким.