我想“#Net”列是最有趣的,虽然我不太明白那是什么意思。当前分配的对象总数?它一直在变化,即使我什么都不做。
是否有任何好的“经验法则”来查看是否存在内存泄漏?
我想“#Net”列是最有趣的,虽然我不太明白那是什么意思。当前分配的对象总数?它一直在变化,即使我什么都不做。
是否有任何好的“经验法则”来查看是否存在内存泄漏?
您可能会发现本教程很有帮助:http ://www.mobileorchard.com/find-iphone-memory-leaks-a-leaks-tool-tutorial/ 。
此外,还有一个静态分析器可以直接分析您的源代码: http: //clang.llvm.org/StaticAnalysisUsage.html。
一般来说,如果你的应用程序的内存占用在你完成所有基本操作一两次后继续增长,那么你可能有内存泄漏。总内存占用在“Net Bytes”列中。“总体”列包括程序整个运行中的每个分配,而“净”列减去释放。
但是,根据我的经验,“Leaks”工具在捕获内存泄漏方面比 ObjectAlloc 好得多。只需在 Xcode 中选择“Run > Start With Performance Tool > Leaks”并运行您的程序一段时间。如果 Leaks 开始显示泄漏的块,那么您就有了泄漏。它会告诉您每个分配、保留、释放和释放任何泄漏块的堆栈跟踪,您可以双击堆栈跟踪以跳转到代码中的那个位置。只需确保通过单击窗口底部的小半阴影方形按钮打开“扩展详细信息视图”,就在“泄漏块”标签的左侧。要获取分配列表,请单击块旁边出现的小“圆圈中的三角形”披露三角形'