【发布时间】:2012-10-03 23:06:20
【问题描述】:
收到许多内存警告后,我的应用程序不断崩溃。它有将近三万行代码,因此很难跟踪问题。我已经通过仪器运行它,并且在某些阶段有高达 30MB 的实时字节,据我所知,这应该不是太大的问题。内存泄漏极少,因此它们不会成为问题。该应用程序在长时间播放后往往会崩溃。仪器中没有任何东西可以帮助我追踪我不断收到的记忆警告的来源。有没有其他可能的方法来做到这一点?非常重要的是,这不会因为明显的原因而发生。非常感谢任何帮助。
【问题讨论】:
-
使用虚拟机跟踪工具查看与您的应用相关的脏内存量。几乎可以肯定泄漏看起来非常小,因为您的应用程序内存空间中的跟踪结构很小,但它们与另一个内存空间中的媒体对象相关联(例如,由渲染服务器中的大型渲染缓冲区支持的图片,音频/视频mediaserverd 和启动板等中的缓冲区支持的文件)。 VM Tracker 工具将向您展示应用程序内存使用情况的真实情况。那些“微小”的泄漏可能根本就不小。
-
您是否尝试过分析构建产品 -> 分析?肯定会显示一些内存泄漏的行...
-
@JasonCoco 显然 76% 的常驻内存是脏的。我对 VM Tracker 不是很熟悉,但我认为这意味着我有很多泄漏和未使用的内存。下一步将是弄清楚究竟是什么 id 导致了这种情况,这就是我现在卡住的地方。
-
@Keithbunts 分析没有发现任何重大问题
标签: iphone objective-c memory instruments memory-warning