我的 iOS 应用程序响应轻击手势的速度呈指数级增长,这有一个问题。
这是一个字母游戏,所以循环浏览 26 张图片的列表。
使用仪器,看起来内存占用量大约为 6-7 Mb:
更新:这是我在分析器中运行的应用程序的照片。它看起来很饿 - 实际内存使用量(蓝线)在 300 - 500 Mb 范围内。
我以前没有分析过,发现 Instruments 应用程序非常不直观。有人可以给我一个高级指针,让我开始缩小范围吗?
我的 iOS 应用程序响应轻击手势的速度呈指数级增长,这有一个问题。
这是一个字母游戏,所以循环浏览 26 张图片的列表。
使用仪器,看起来内存占用量大约为 6-7 Mb:
更新:这是我在分析器中运行的应用程序的照片。它看起来很饿 - 实际内存使用量(蓝线)在 300 - 500 Mb 范围内。
我以前没有分析过,发现 Instruments 应用程序非常不直观。有人可以给我一个高级指针,让我开始缩小范围吗?
几个想法:
我建议观看 WWDC 2012 视频,学习工具。
WWDC 2010 视频,使用仪器进行高级内存分析可能更多地关注内存。在过去几年中,Instruments 中的 UI 可能有一些表面上的变化,它没有反映出来,但这些概念和想法仍然适用。
僵尸的使用非常适合在您可能有悬空指针的地方找到过度释放的项目。这在手动引用计数(MRC,即您已关闭 ARC)中非常有用,但在自动引用计数 (ARC) 世界中价值较小。它通过跟踪“释放”的内存来实现这一点。但它实际上会消耗内存来实现这一点。我建议您在解决过度释放问题后关闭僵尸程序,否则您将看到内存不会像其他方式那样快速返回到应用程序。
特别是如果您不使用 ARC,请检查静态分析器(按shift+ command+B或在“产品”菜单上选择“分析”)。这可以识别出许多常规内存管理错误。
您需要关闭 NSZombieEnabled。
转到您的方案,并在运行配置中转到诊断并确保未选中启用僵尸对象框。