【问题标题】:What does <non-object> in Allocation "heapshots" mean?分配“堆”中的 <non-object> 是什么意思?
【发布时间】:2011-05-04 00:23:18
【问题描述】:

我很难在我的 iPad 应用程序中修复与内存相关的问题,但是,好在我因此而了解了“heapshots”。糟糕的是,我仍然无法弄清楚提供给我的某些信息是什么意思。

那么,这些仍然存在并占用堆增长中描述的大部分内存的非对象是什么?有可能摆脱它们吗?看起来大部分都与各种绘图操作、CALayer、上下文等有关(类别:“Malloc”或“Realloc”)。如果需要,我可以提供更多详细信息。

【问题讨论】:

    标签: iphone objective-c xcode ipad instruments


    【解决方案1】:

    这意味着内存块不是为对象分配的(例如纯 c 结构)。 通常它们是由系统框架代码分配的,因此还有一些其他的对象泄漏。例如。如果你忘记释放 UIView,那么它的层也不会被释放。

    您可以打开“扩展详细信息”面板(参见“查看”菜单)并分析调用堆栈。请记住,您忘记的一个release 会导致大量内存泄漏,因此请尝试修复最简单的泄漏,然后检查其他泄漏是否消失。

    还有一个技巧。您可以逐个禁用应用程序的功能块,看看泄漏是否消失。因此,您将能够找到它所在的模块(类、功能块等)。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多