iOS应用内存分析

3
我发现我的iOS应用程序对触摸手势的响应速度越来越慢。
这是一个字母游戏,因此会循环播放26张图片。
使用Instruments工具,内存占用量正常,大约为6-7 Mb:
更新: 这是分析器中正在运行的应用程序截图。看起来非常贪婪 - 实际内存使用量(蓝线)在300-500 Mb范围内。
我以前没有进行过分析,并且发现Instruments应用程序非常不直观。有人能给我一个高级提示,帮助我缩小范围吗?

有没有可能使用页面控制器和UIScrollView来显示这26张图片? - Alex
2个回答

4

以下是几点建议:

  1. 我建议您观看WWDC 2012视频,Learning Instruments

  2. WWDC 2010视频,Advanced Memory Analysis with Instuments可能更加专注于内存。过去几年中Instruments的UI可能有一些表面性的变化,但其中的概念和想法仍然适用。

  3. 僵尸对象在查找过度释放的项(可能存在悬空指针)方面非常有效。这在手动引用计数(MRC,即关闭了ARC)中非常有用,但在自动引用计数(ARC)世界中价值较小。它通过跟踪“已释放”内存来实现这一点。但它实际上会消耗内存来实现这一点。建议在解决了过度释放问题后关闭zombies,否则您将看到内存不会像本来应该那样迅速返回给应用程序。

  4. 特别是如果您没有使用ARC,请查看静态分析器(按下shift+command+B或选择“产品”菜单中的“Analyze”)。它可以识别出许多常见的内存管理错误。


是的,我正在使用ARC。我可能会检查WWDC视频,因为我确实需要一些基本的想法来追踪看起来不是逻辑相关而是设计相关的问题。使用不同的工具视图进行更新。 - HCdev
有很多WWDC视频展示了各种Instruments技术。这只是其中两个引起我注意的。我还建议WWDC 2012 - iOS应用程序性能:内存在视频后半部分也包括一些实际演示。祝你好运! - Rob

0
你需要关闭NSZombieEnabled。
进入你的scheme,在运行配置中找到诊断,并确保未选中“启用僵尸对象”框。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接