我猜"# Net“专栏是最有趣的,尽管我并不真正理解这是什么意思。当前分配的对象总数?它一直在变化,即使我什么都不做。
有没有什么好的“经验法则”来判断是否存在内存泄漏?
发布于 2009-05-25 01:07:03
一般来说,如果您的应用程序的内存占用在您完成了一到两次所有基本操作之后继续增长,那么您可能存在内存泄漏。总内存占用在"Net Bytes“列中。“out”列包括整个程序运行过程中的每个分配,而"Net“列减去释放。
然而,根据我的经验,在捕获内存泄漏方面,“泄漏”工具要比ObjectAlloc好得多。只需在Xcode中选择"Run > Start With Performance Tool > Leaks“并运行您的程序一段时间。如果leaked开始显示泄漏的块,那么您就有漏洞了。它将告诉您每个分配、保留、释放和释放任何泄漏块的堆栈跟踪,您可以双击堆栈跟踪跳到代码中的该位置。只需确保打开“扩展细节视图”,点击窗口底部的小的半阴影方形按钮,就在“泄漏的块”标签的左边。要获得分配列表,请单击当鼠标悬停在区块地址旁边时出现的“圆圈中的三角形”显示小三角形。
发布于 2009-05-25 01:03:08
你可能会发现这个教程很有帮助:http://www.mobileorchard.com/find-iphone-memory-leaks-a-leaks-tool-tutorial/。
此外,还有一个静态分析器可以直接分析源代码:http://clang.llvm.org/StaticAnalysisUsage.html。
https://stackoverflow.com/questions/904953
复制相似问题