2015-02-12 74 views
0

当我运行使用仪器我的应用程序,我面对以下问题之前,应用程序最终崩溃:终止由于系统库内存压力和内存泄漏

  • 分配:有一个在总字节数最多持续增加到1-2GB。即使在检测到任何泄漏之前也可以看到这种增加。
  • 泄漏:有多处泄漏。在查看调用树,我觉得他们是在系统库:
    • 与符号名称,malloc_zone_malloc和的malloc在libsystem_malloc.dylib
    • 字节用于列显示192个字节,100%

当我在xcode中运行它时,出现“由于内存压力而终止”错误。

我的问题是 -

是提交bug报告与苹果唯一的解决方案,因为泄漏是系统库?

泄漏是造成这次事故的唯一原因;考虑到只有192个字节被泄漏,并且在泄漏之前内存使用量增加了?

回答

0

当排除内存分配故障和泄漏时,排除系统库并仅查找代码几乎总是一个好主意。你很难发现在核心库中发现这种基本的和容易发现的错误,而且以前没有人关心过这个问题。

泄漏的事实在malloc中表示并不意味着任何内容。所有的内存分配将在最后通过mallocs。您需要先查找代码中的错误。

+0

鉴于malloc意味着错误可能在代码中的任何地方,是否有更好的起点来定位除注释图形密集代码部分之外的错误? – 2015-03-04 21:03:46

+0

你不需要注释掉东西。首先尝试在分析器中运行它。 – sha 2015-03-05 17:44:40