Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS不断增长的内存使用率_Ios_Debugging_Memory Management_Memory Leaks_Instruments - Fatal编程技术网

iOS不断增长的内存使用率

iOS不断增长的内存使用率,ios,debugging,memory-management,memory-leaks,instruments,Ios,Debugging,Memory Management,Memory Leaks,Instruments,我现在正在做一个我不久前开始的游戏。进展很好,一切都很顺利,但我决定尝试使用XCode工具检查代码中是否有泄漏。我使用的是ARC,只有当其他对象被删除时才会添加新对象(这是我游戏内部工作的一部分),但总内存大小会随着运行而不断增加 我的游戏是完全按程序生成的,不需要任何资源,它也只使用了一对只使用颜色映射的多边形,所以没有纹理。我认为它应该只需要几个MBs就可以运行(从一开始就是这样),但它只是在不断增长 现在,我注意到一些有趣的事情。。。占用大部分数据的是一个名为IOAccelResource

我现在正在做一个我不久前开始的游戏。进展很好,一切都很顺利,但我决定尝试使用XCode工具检查代码中是否有泄漏。我使用的是ARC,只有当其他对象被删除时才会添加新对象(这是我游戏内部工作的一部分),但总内存大小会随着运行而不断增加

我的游戏是完全按程序生成的,不需要任何资源,它也只使用了一对只使用颜色映射的多边形,所以没有纹理。我认为它应该只需要几个MBs就可以运行(从一开始就是这样),但它只是在不断增长

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

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

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

所有其他条目都非常小,在同一点上下波动,或者保持不变

下面是一些麻烦条目的屏幕截图:


有什么建议吗?

如果您指的是“总体字节”或“总体(元素)”持续增长,这通常不是问题,因为这会跟踪总内存使用情况(换句话说,它不考虑释放的内存)

您应该查看的是“活动字节”和“#活动(元素)”并确保它符合您的期望

您还将看到,如果“总字节数”持续增长,则不会使您的应用程序崩溃。另一方面,如果“活动字节”持续增长,将导致应用程序崩溃

苹果已经意识到仪器配置文件中的信息太多,这就是为什么在xCode5中,它直接将重要信息提取到xCode中:运行应用程序时,单击导航器(xCode的左列)中的第6个图标(调试导航器)。您将看到只跟踪“活动字节”的内存指示器

此外,如果您可以访问WWDC 2013视频,请查看会话410:修复内存问题


希望这有帮助。

啊,谢谢你,伙计!我真的很担心发生了非常严重的事情。看来我有完美的内存管理!我发现情况并非如此。当我看仪器时,我的应用程序显示了完美的内存管理。当我查看XCode中的内存图时,它显示我的应用程序正在不断分配大约1.5MB的内存,而每次定时器触发时,这些内存都不会被释放。我想接受Instruments的发现并继续前进,但我很担心。这里也是一样:Xcode内存量表不断增长,但分配+泄漏Instruments表明内存得到了正确管理。不知道我应该得出什么结论。。。