iOS不断增长的内存使用

我目前正在开发一个我刚刚开始的游戏。 进展是好的,一切运行顺利,但我决定尝试使用XCode仪器来检查我的代码中的任何泄漏。 我正在使用ARC,只有当其他人被删除(我的游戏的内部工作的一部分)时才添加新的对象,但总的内存大小不断增长,因为它运行。

我的游戏是完全程序化生成的,不需要资产,它也只使用一个只与颜色映射的多边形多边形,所以没有纹理。 我预计它应该只需要几MB来运行(它开始),但它只是在不断增长。

现在,我注意到一些有趣的事情…大部分数据的用途是一个名为IOAccelResource的条目。 这很奇怪,因为我不使用任何加速度计/陀螺仪/指南针数据。 我甚至没有在我的项目中引用CoreMotion框架。

数据的第二个主要用途是四个不断增长的malloc集合。 还有一些保持相对相同。

这两个条目不被认为是程序泄漏。 当我告诉XCode分析我的代码时,并没有指出任何问题。

所有其他条目都非常小,并围绕同一点波动,或保持不变。

这是一个麻烦的条目的截图: 项

有什么build议?

如果您指的是“总体字节”或“#总体(元素)”不断增长,那么这通常不是一个问题,因为它跟踪了总的内存使用情况(换句话说,它没有考虑释放的内存)。

你应该看的是“现场字节”和“#活着(元素)”,并确保它符合你的期望。

你也会看到,如果“总体字节”不断增长,那么不会崩溃你的应用程序。 另一方面,如果“实时字节”不断增长,那么会导致应用程序崩溃。

苹果已经意识到,仪器configuration文件中的信息太多,这就是为什么在xCode5中,它直接将重要信息提炼到xCode中:在运行应用程序时,在导航器中点击第6个图标(debugging导航器)的xCode)。 您将看到只会跟踪“实时字节”的存储器指示器。

另外,如果您有权访问WWDC 2013video,请查看会话410:修复内存问题。

希望这可以帮助。