在我的应用程序中,用户可以选择在屏幕上显示任意数量的对象。显示的每一个都必须从文件中取消归档,放入内存,然后显示。通常,如果显示允许的最大对象数,我的应用程序的总内存消耗会上升到大约 15 MB。如果我按下主页按钮并暂停应用程序然后返回应用程序,消耗的内存将下降到大约 6 MB!一切仍然正常;对象仍在内存中。这怎么可能?我正在真实设备上对此进行测试。这是 Instruments 的问题,还是导航控制器在应用程序进入后台时被释放的某种缓存?任何能说明这一点的东西都会受到欢迎。
编辑:
我现在才意识到 Instruments 中两个“分配”工具的区别。当您分析应用程序时,您可以选择“泄漏”或“分配”。通过选择泄漏,我可以看到我的内存占用量的一个度量,峰值约为 20 MB。通过选择分配,我看到了我的内存占用量的另一个衡量标准,它达到了惊人的 230 MB!显然,每个人测量的内容都存在一些差异。我应该看哪个?我一直关注“泄漏”分配测量。
以下是在应用程序中同一时间拍摄的两个最近的个人资料:
通过“泄漏”,我得到了这个结果:
使用“分配”我得到了这个结果:
有人可以向我解释这种差异背后的含义吗?