这是在iOS上,设备是iPad。
下面是发生的事情:
我在设备上运行应用程序或使用Xcode进行调试和运行。5分钟后,我收到1级的内存警告。一分钟后,我收到2级的内存警告。再过一分钟,Program received signal: “0”.,
我使用仪器中的泄漏检查泄漏,没有检测到任何泄漏,。然而,根据Activity的说法,我的应用程序最初使用30 MB,随着时间的推移,它的大小增加到超过100 MB(大约每秒200 MB!)。所以,显然泄漏并不能检测到所有的内存泄漏。
因此,我的问题是:如果泄漏无法检测,是否有任何一般性的提示来发现它们,是否有更好的工具来查找这些漏洞?
发布于 2011-01-18 04:58:12
我就是这样处理的,
使用前缀命名所有类,以便在Instruments
很容易地看到它们。
现在停止您的应用程序,并在搜索框中键入您怀疑泄漏的类的名称。(这是前缀方便的地方)。使用“记录”按钮再次启动仪器。
发布于 2011-01-18 04:58:36
在你提到的情况下,你总是没有必要有漏洞。您可能在这里提到的执行时间内使用了很多自动释放的对象。您可能要向集合对象添加大小较大的对象。如果是这样的话,为这种情况使用一个单独的自动释放池,减少应用程序的内存占用。
发布于 2011-01-18 04:49:47
如果您可以使用工具查找漏洞,这是首选的,但如果完全困难,还有另一种技术,我使用。
首先注释掉几乎所有的内容,然后慢慢地每次添加一个组件,直到再次发生内存泄漏。这样,您就可以将焦点集中在创建问题的函数或代码块上。
https://stackoverflow.com/questions/4720418
复制相似问题