我的应用遇到了问题。到目前为止,我主要在我的 iPad 3 上进行测试,偶尔会检查我的 iPad 1 以确保一切正常。
我正在我的应用程序中播放一个 UIImageView 动画,它一直在退出,并且在退出之前只有一条“收到内存警告”消息。
我一直在仪器中使用对象分配工具,但据此,我的内存使用率很低。因此,经过一番研究后,我发现了 Larson 先生的这篇文章:https://stackoverflow.com/a/5627221/329900
现在我改用内存监视器工具。但是,我不明白我为什么要辞职。第一代。 iPad 有 256MB 内存。现在我知道我不能使用所有这些......有人说你不应该使用超过 100MB。
不过那是真实内存还是虚拟内存……或者可能是某种组合?我的真实内存始终在 20 - 25MB 之间,但虚拟内存在崩溃时约为 190 - 205MB。
这是一个截图:
任何人都可以阐明这一点吗?
最佳答案
通过在 WWDC 2012 Session Videos 中搜索 iOS App Performance: Memory 找到的 WWDC(第 242 节)视频页面将使您更好地了解 VM 和实际内存之间的区别。
但这里有一个快速概述: A pointer Range = 2^32 = 4GB 这比任何设备上的物理内存都大(苹果已经发货)。这是通过获取所有可用空间并将其分成 4kb block 来完成的。并非您的应用程序可以访问的所有内存都同时位于物理内存中。这些 4kb 的 block 是调用页面。您的分配会从更大的虚拟内存块中分离出来。然后这些虚拟内存对象被映射到物理内存。
关于ios - iOS 上使用 Memory Monitor 时虚拟内存消耗和实际内存的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839239/