HeapShot使用Instrument检测内存泄漏

时间:2011-09-08 14:22:44

标签: iphone memory-management instruments

Heapshot Instrument 请帮助我了解如何使用图像中显示的静态。 如何有效地使用快照来检测内存泄漏?

我使用leaks添加了Instrument的图像。但是我无法找到内存泄漏的确切位置。 请指导我。Leaks

1 个答案:

答案 0 :(得分:2)

此屏幕截图中的快照基本上会显示在上一个快照之后创建且仍处于“实时”状态的任何对象(保留计数> 0)。

典型的用法是点击“Mark Heap”,然后导航到视图控制器,点击几个按钮,执行一些操作,然后点击“后退”按钮。拍摄另一张快照并检查对象列表。你应该确保没有任何物品悬挂在那里应该被清理干净。这可能是视图控制器本身,模型对象等等。

如果要检测实际泄漏(未引用的对象),请使用“泄漏”工具。如果要查找其他类型的无限内存增长,即仍然引用且不存在的对象,则应使用分配工具(如此屏幕截图中)检查快照。

编辑:

您在原始帖子中添加了Leaks屏幕截图。要查看此对象分配位置的堆栈跟踪,请单击此按钮:

enter image description here

这应该显示对象的创建位置。然后你需要弄清楚适当的发布呼叫需要去哪里。