gpt4 book ai didi

iphone - 应用程序进入后台时的内存占用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:55 27 4
gpt4 key购买 nike

在我的应用中,用户可以选择在屏幕上显示任意数量的对象。显示的每一个都必须从文件中解压缩,放入内存,然后显示。通常,如果显示允许的最大对象数,我的应用程序的总内存消耗会增加到大约 15 MB。如果我按下主页按钮并暂停应用程序然后返回到应用程序,消耗的内存会下降到大约 6 MB!一切仍然正常;对象仍在内存中。这怎么可能?我正在真实设备上对此进行测试。这是 Instruments 的问题,还是当应用程序进入后台时,导航 Controller 会进行某种缓存?欢迎任何能对此有所启发的内容。

编辑:

我现在才意识到 Instruments 中两个“分配”工具的区别。在分析应用程序时,您可以选择“泄漏”或“分配”。通过选择泄漏,我可以看到我的内存占用量的一种度量,其峰值约为 20 MB。通过选择分配,我看到了内存占用的另一种衡量标准,其峰值达到了惊人的 230 MB!显然,每个人测量的内容存在一些差异;我应该看哪个?我一直在查看“泄漏”分配度量。


这是应用程序中同一时间拍摄的两个最近的配置文件:

通过“泄漏”,我得到了这个结果:

Leaks

通过“分配”我得到了这个结果:

Allocations

有人可以向我解释一下这种差异背后的含义吗?

最佳答案

据我了解,分配向您显示总共分配的内存量,但不会去除已释放的位。泄漏向您显示泄漏的内存量,换句话说,已分配但未释放的内存量。您的目标必须始终为零。为避免内存泄漏,请在您的项目中使用 ARC 或确保您的保留释放一切正常。

如果您想测量您的应用消耗的内存量,我会在 Instruments 中选择 Activity Monitor,它应该会显示实际量。

关于iphone - 应用程序进入后台时的内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10956733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com