【问题标题】:iOS App Memory profilingiOS 应用程序内存分析
【发布时间】:2013-05-10 01:52:43
【问题描述】:

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

这是一个字母游戏,因此在 26 张图片列表中循环播放。

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

更新: 这是我在分析器中运行的应用程序的照片。它看起来很饿 - 实际内存使用量(蓝线)在 300 - 500 Mb 范围内..

我之前没有进行过分析,发现 Instruments 应用程序非常不直观。有人可以给我一个高层次的指针,让我开始缩小范围吗?

【问题讨论】:

  • 有没有可能使用页面控件和 UIScrollView 显示 26 张图片?

标签: ios profiling instruments


【解决方案1】:

一些想法:

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

  2. WWDC 2010 视频Advanced Memory Analysis with Instuments 可能更多地关注内存。在过去几年中,Instruments 中的 UI 可能有一些表面上的变化,它没有反映出来,但这些概念和想法仍然适用。

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

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

【讨论】:

  • 是的,我正在使用 ARC。我将检查 WWDC 视频,因为我真的需要一些基本的想法来了解如何追踪看起来与逻辑无关但与设计相关的问题。更新了不同的仪器视图。
  • 有大量的 WWDC 视频展示了各种 Instruments 技术。这只是两个向我跳出来的。我还建议WWDC 2012 - iOS App Performance: Memory 在视频的后半部分也包含一些实际演示。祝你好运!
【解决方案2】:

您需要关闭 NSZombieEnabled。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2017-08-10
    • 1970-01-01
    • 2016-02-10
    相关资源
    最近更新 更多