Cocoa / ObjC:启用GC时加载大量图像的内存使用率很高?

时间:2011-12-13 13:58:28

标签: cocoa memory-leaks nsimage nsimageview

我编写了一个简单的图片浏览器,它只是随机滑过~/Pictures中的图片。

对于每次新转换,我都会创建并加载NSImage,然后创建一个新的NSImageView并将其设置为新的子视图,并删除旧的子视图。

这基本上都是。随着每一张新照片的记忆不断提升,我想知道为什么。我原以为它会保持非常低并且总是保持不变。

我试图调试它并且探查器工具找不到任何泄漏的内存,所以我猜它仍然被引用或更复杂。但是,大多数内存取自函数ImageIO_malloc

可以看到完整的(相关的)代码here(已经大大简化了 - 删除了大部分功能,但泄漏仍然存在)。

ARC已停用。

有趣的一点:当我禁用ObjC GC时,它是预期的。它保持(相对)低。

1 个答案:

答案 0 :(得分:0)

您是否尝试将newImageView设置为自动释放?