我之前没有使用过Zombies,而且必须承认我不确定它在做什么.但有一点让我担心:
CFArray似乎不断增加其Live Bytes和#Living专栏以及一些我认为相关的mallocs.这是我的应用程序只是坐在那里,渲染(OpenGL)并等待输入.
我试过运行泄漏仪器,这并没有表明我在这段时间内发生了内存泄漏,甚至没有更多的分配.没有任何分配,更不用说CFArray了.
那么我应该相信哪两种乐器呢?或者仅仅是因为我不明白Zombies乐器究竟在做什么?
如果僵尸有任何体面的文档,任何人都可以指向我,那将是很酷的. Apple的文档似乎略微掩盖了它.
解决方法
NSZombies基本上用占位符替换释放的对象,以通知开发人员是否在dealloc之后访问它(显然是坏事).这有助于解决保留/释放问题.
通过启用它,您的应用程序将显得像是一个像筛子一样泄漏记忆,因为没有任何东西真的会被释放.通常,我使用NSZombies在调试期间寻找特定的崩溃程序(或者你可以在分配工具中打开Zombies – 这也应该警告你内存使用量只会增加)…我使用Leak Shots中的Leaks或Allocations在功能正常的应用上进行记忆分析的工具.
关于SO:What is NSZombie?的另一个好问题/答案