【问题标题】:Checking memory allocation in Instruments检查 Instruments 中的内存分配
【发布时间】:2010-11-06 20:51:46
【问题描述】:

我已经使用泄漏工具清除了我的应用程序的泄漏,但我仍然注意到,当我切换视图时,objectalloc 工具在分配的对象数量和占用空间方面增加了。

我特别看到大量:

GeneralBlock-16,主要由 Foundation 负责调用者 NSLogv

GeneralBlock-0,主要负责 QuartzCore

关于我可以做些什么来进一步调试的任何提示?

谢谢!

【问题讨论】:

    标签: iphone xcode debugging memory-leaks instruments


    【解决方案1】:

    ObjectAlloc 工具旨在绘制随时间变化的总对象分配图,它不考虑解除分配。本质上:它会一直上涨

    您可以查看 Net Bytes 和 # Net 列。这些列根据您解除分配的对象数量进行调整,如果您担心总的对象分配,您可以使用这些来衡量您的程序的性能。

    您可以查看 Apple 支持论坛上的 this thread - 它更多地涉及 Instruments 测量的内容以及如何测试您的应用程序。

    【讨论】:

    • 对不起,也许我的问题不清楚。我知道对象分配总是上升,但是我指的是 Net Bytes 和 #Net 也永远不会下降,这令人担忧。在导航控制器中推送视图会大大增加这些数字,而弹出视图不会减少它们。此外,GeneralBlock-0 的绝对数量也令人不安。我真的很想知道为什么存在这么多 0 位对象。
    • 这不太正确;您可以将分配工具配置为仅跟踪实时分配。在这种情况下,这些列将准确反映当前内存中的内容。
    • bbum 是对的,在 Xcode 4 中,Instrument 中的默认分配模板显示“所有分配”分解为列,同时显示实时字节和总字节。
    【解决方案2】:

    您应该查看http://developer.apple.com/videos/wwdc/2010/?id=311

    WWDC 2010 上关于使用 Instruments 进行内存分析的精彩视频。

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 2010-10-09
      • 1970-01-01
      • 2012-06-23
      • 2013-12-26
      • 2019-11-12
      • 2017-04-07
      • 2011-08-02
      • 2023-03-20
      相关资源
      最近更新 更多