查找内存泄漏

问题描述:

我知道有很多关于内存泄漏的帖子。现在我正在阅读这些内容。查找内存泄漏

但也许有些人可以给我一些提示如何找到在哪个控制器或哪个对象泄漏。因为现在我已经栈对象名迹像0xcvf34和responsoble框架,该框架

Leaked Object # Address Size Responsible Library Responsible Frame 
__NSCFString,1 0xcvf34 32 Bytes Foundation -[NSPlaceholderString initWithBytes:length:encoding:] 

还有很多更

什么可能是我的策略是什么?因为找到哪个NSString泄漏真的很难,因为有很多代码。

我正在使用苹果乐器。

+0

一个非常重要的事情是:'NSString'你提到的可能是不漏* * *,但泄露*。你必须走分配轨迹找到罪魁祸首(所有者)。 – jv42 2012-02-03 08:09:51

选择该行并查看侧边栏,它会告诉您它属于哪个类。

+0

它不会说它属于哪个类。也许我现在不会如何配置仪器的正确设置? – Streetboy 2012-02-03 07:45:24

+0

可能是双击该行会导致一些其他的根本原因,这可能会帮助你。 – Vignesh 2012-02-03 07:50:05

+0

然后它显示我认为代码的汇编程序。或不可用 – Streetboy 2012-02-03 07:55:41

基础设施对象开始泄漏并且可悲的是,大部分时间内你无能为力。

如果您希望您的应用程序在AppStore中获得批准,则该规则将修复代码本身的泄漏,也就是说,负责人将是“YourViewController”而不是“Foundation”,因为基金会泄漏意味着“它的苹果的错,而不是你的”。

看看这篇文章,它可能给你一些方向对于这个话题:

http://www.raywenderlich.com/2696/how-to-debug-memory-leaks-with-xcode-and-instruments-tutorial

+1

*基金会物品开始泄漏并且悲伤的情况很常见,大部分时间你都无法做到。 a)我不觉得它“很常见”。我正在处理的这个项目现在有**一个泄漏**。 b)提交一个错误。 c)泄漏指出作出分配的图像,而不是负责ref计数不平衡的库。 – justin 2012-02-03 08:03:11

+0

看看第二回答http://*.com/questions/3384537/nsxmlparser-memory-leak-on-ios-4-0-not-nscfstring。多数民众赞成我的意思是当我说“苹果的错”和“非常普遍”。你的项目中有一处漏洞真是太棒了,我的ASIHTTPRequest有2个。无论如何,我的观点是,我没有花时间去寻找解决Apple库缺陷的解决方法,以减少泄漏,除非漏洞的数量很大。 – codingcthulhu 2012-02-03 08:36:49

+0

@codingcthulu是的,我知道苹果公司发布泄漏的软件 - 我已经使用了它们的libs很多年了。这些错误来了,他们走了。我的观点是,这只是“非常普通”。你连接的bug(自然)非常孤立。虽然缺陷会通过,但系统库肯定比来自应用程序域的典型程序更清洁。那是一个非常认真对待泄密的人。 – justin 2012-02-03 09:00:55