我编写了一个简单的图片查看器,它只是在~/Pictures
.
对于每个新的过渡,我都在创建和加载NSImage
,然后创建一个新的NSImageView
并将其设置为新的子视图,并删除旧的子视图。
这基本上就是全部了。每张新照片都会让记忆不断增加,我想知道为什么。我本来预计它会保持在非常低的水平,并且始终保持不变。
我尝试调试它,探查器工具没有发现任何泄漏的内存,所以我猜它仍然被引用或更复杂。不过,大部分内存都是从函数中获取的ImageIO_malloc
。
完整的(相关)代码可以在这里看到(已经大大简化了——大部分功能被删除,但泄漏仍然存在)。
ARC 被禁用。
有趣的一点:当我禁用 ObjC GC 时,它符合预期。它保持(相对)低。