【问题标题】:Am I doing something wrong with Instruments in Xcode 4.3.2?我在 Xcode 4.3.2 中的 Instruments 有什么问题吗?
【发布时间】:2012-06-08 18:43:08
【问题描述】:

我关注this video tutorial 使用带有 Xcode 4.3.2 的 Instruments 检测内存泄漏。

正如您从视频中看到的那样,创作者获得了很多关于被泄露对象类型等方面的有用反馈。

当我运行仪器时,我检测到一些内存泄漏,但没有得到太多有用的反馈:

“根泄漏”是什么意思?为什么上面的屏幕中没有更多有用的信息?

这是我可以解决的问题吗?

我在我的应用程序中使用 ARC - 这是否会影响 Instruments 以任何方式发现内存泄漏?

【问题讨论】:

    标签: objective-c ios5 automatic-ref-counting instruments xcode4.3


    【解决方案1】:

    根泄漏可能是两种情况之一。它可以是单个内存泄漏,也可以是泄漏周期的开始。当您丢失对一组对象的引用时,就会发生泄漏循环。内存泄漏会泄漏一个对象,而泄漏循环会泄漏一组对象。

    您的代码可能没有任何泄漏周期,这可以解释为什么您的周期和根部分显示的信息比教程少。从跳转栏中选择 Call Tree 而不是 Cycles 和 Roots 可以帮助您找到代码中内存泄漏的区域。

    【讨论】:

    • 好的 - 感谢您的解释!我是否正确地说这种泄漏来自本机 UIKit 对象? cl.ly/2V2D1M0H0m471j2f0S21
    • 96bytes 的泄漏有多严重?是否存在可以容忍的内存泄漏水平,还是应该期望一个 100% 防泄漏的系统?
    • 对于调用树,选择 Invert Call tr​​ee 和 Hide System Libraries 复选框可以帮助您缩小代码范围。您应该努力消除所有泄漏,但 96 字节的一次性泄漏并不是灾难。
    • 感谢您花时间解释:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多