iOS 应用程序内存分析

iOS App Memory profiling

我遇到了一个问题,我的 iOS 应用程序响应点击手势的速度呈指数级增长。

这是一个字母游戏,所以循环浏览 26 张图片的列表。

使用工具,看起来内存占用量大约为 6-7 Mb:

Instruments


一些想法:

  • 我建议观看 WWDC 2012 视频,学习工具。

  • WWDC 2010 视频,使用仪器进行高级内存分析可能更多地关注内存。过去几年 Instruments 的 UI 可能有一些表面上的变化,它没有反映,但概念和想法仍然适用。

  • 僵尸的使用非常适合在你可能有悬空指针的地方找到过度释放的项目。这在手动引用计数(MRC,即您关闭了 ARC)中非常有用,但在自动引用计数(ARC)世界中价值较小。它通过跟踪"释放"的内存来实现这一点。但它实际上会消耗内存来实现这一点。我建议您在解决过度释放问题后关闭僵尸程序,否则您会发现内存不会像其他情况那样快速返回到应用程序。

  • 特别是如果您不使用 ARC,请检查静态分析器(按 shift command B 或在"产品"菜单上选择"分析")。这可以识别出许多常规内存管理错误。


  • 您需要关闭 NSZombieEnabled。

    转到您的方案,在运行配置中转到诊断并确保未选中启用僵尸对象框。