【发布时间】:2012-06-16 04:57:30
【问题描述】:
我正在尝试增强我的非 ARC 应用程序中的内存分配。 有一些对象,即使它们的引用计数为 0,它们也被列为两个 heapshot 之间的持久对象。
这是我的主要视图:
让我们以第一个 heapshot (0x6deb180) 中选定的 LSBookChapter 为例。 这是该对象的历史:
为什么那个对象没有被释放?如果引用计数为 0,我无法确定何时过度保留该对象..
【问题讨论】:
-
如果您正在寻找泄漏,为什么不直接使用泄漏工具呢?分配向您表明您做到了正确,没有错。
-
I am trying to the memory optimization in my non-ARC app涉及的不仅仅是泄漏。 -
CodaFi:Leaks 工具没有显示该区域的泄漏,无论如何,正如您所看到的,内存仍在增加.. Jack Boy:您能通过这种方式提供更多帮助吗?
-
@CodaFi 首先,在stackoverflow上不需要那种态度。我们正在努力为同一件事做出贡献:帮助提出问题的人。其次,有些情况下您没有泄漏,但仍然存在内存问题。我可以举一个例子:UIWebView 缓存。它不会显示为泄漏(因为它不应该),并且由于大小的增加,您将遇到内存问题。保持对不再使用的类的引用也是一个问题(与内存泄漏无关)。
-
更不用说除了识别明显的泄漏之外,泄漏实际上毫无用处。有很多方法可以增加内存,这会导致应用程序失败,但不会出现泄漏。当您完成修复已识别的泄漏问题时,您通常才刚刚开始修复您的内存使用情况。
标签: objective-c ios memory-leaks instruments reference-counting