【问题标题】:How to activate Cycles reporting in Instruments under ARC?如何在 ARC 下的 Instruments 中激活 Cycles 报告?
【发布时间】:2012-02-09 18:25:08
【问题描述】:

仪器可以以有趣的图形方式可视化 ARC 下的保留周期。我还记得几天前我偶然发现了 Instruments 中的“Cycles”视图。

现在我开始使用 ARC,突然间我再也找不到它了。 Allocations 和 VM Tracker 工具不提供它,Leaks 工具也不提供。

我必须做什么才能看到保留周期?

找到一张截图作为证据:

【问题讨论】:

    标签: ios xcode memory-management automatic-ref-counting instruments


    【解决方案1】:

    使用 Xcode 4.2.1,我在“Leaks”中的“Cycles & Roots”下找到了它。但是,我发现它在使用 ARC 时用处不大。它确实检测到 CF 泄漏,显然我正在泄漏一个递归块,对此我无能为力,但我不得不根除泄漏从未发现的几个保留周期。为了找到保留周期,我建议使用“分配”并在执行您怀疑“泄漏”的操作之间运行几个堆镜头。然后,您可以查看临时堆镜头以找到罪魁祸首。

    【讨论】:

    • 所以只出现在 Xcode > 4.2 中?我没有 Lion,只有 4.2,但我绝对确定我已经在 Xcode 中发现了“Cycles”。就是不能再激活了。它消失了。
    • 老实说,我不确定它是否在低于 4.2.1 的版本中可用,但它没有用。我有一个巨大的保留周期,其中两个视图控制器保留自己(忘记使用 __weak),并且它们有很多图像。泄漏从未检测到它。很烦人,所以现在我更多地使用 Allocations。
    • @MikhaloIvanokov - 它位于 Xcode 4.2 中,位于 Leaks 工具的下方。您必须单击上图中“Leak Cycles”字样左侧下方面板中的下拉菜单,然后将值从“Leaks”更改为“Cycles & Roots”。
    • @AaronHayman - 如果您可以为此组装一个测试用例,请提交一份关于该用例行为的错误报告。这是一项相当新的技术,我知道 Leaks 仪器的设计是保守的,所以他们很可能会遗漏一些东西。他们最近似乎很快改进了 ARC 和相关工具,所以这可能有助于他们解决这个问题。
    • 周期报告仅在使用 ARC 的项目中受支持,这可以解释为什么您会看到它来来去去(如果您在不同的项目中)。
    猜你喜欢
    • 2012-09-08
    • 2012-01-05
    • 2013-11-04
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2012-02-24
    相关资源
    最近更新 更多