iOS上内存监视器的虚拟内存消耗和真实内存之间的差异

iOS上内存监视器的虚拟内存消耗和真实内存之间的差异,ios,memory-management,instruments,virtual-memory,Ios,Memory Management,Instruments,Virtual Memory,我的应用程序中出现了一个问题。到目前为止,我主要在iPad3上进行测试,偶尔会检查iPad1,以确保一切正常 我正在我的应用程序中播放UIImageView动画,它一直在退出,退出前只显示一条“已接收内存警告”消息 我一直在仪器中使用对象分配工具,但根据这一点,我的内存使用率非常低。所以在研究了一段时间后,我看到了拉森先生的这篇文章: 现在我使用的是内存监视器工具。然而,我不明白我为什么要辞职。第一代iPad有256MB内存。现在我知道我不能使用所有这些…有人说你不应该使用超过100MB的数据

我的应用程序中出现了一个问题。到目前为止,我主要在iPad3上进行测试,偶尔会检查iPad1,以确保一切正常

我正在我的应用程序中播放UIImageView动画,它一直在退出,退出前只显示一条“已接收内存警告”消息

我一直在仪器中使用对象分配工具,但根据这一点,我的内存使用率非常低。所以在研究了一段时间后,我看到了拉森先生的这篇文章:

现在我使用的是内存监视器工具。然而,我不明白我为什么要辞职。第一代iPad有256MB内存。现在我知道我不能使用所有这些…有人说你不应该使用超过100MB的数据

这是真实内存,还是虚拟内存…或者是某种组合?我的真实内存始终在20-25MB之间,但虚拟内存崩溃时大约在190-205MB之间

以下是一个屏幕截图:

任何人都能对此有所了解吗?

通过搜索iOS应用程序性能:内存页面中的WWDC(会话242)视频将让您更好地了解虚拟机和真实内存之间的区别

但这里有一个快速概述:
指针范围=2^32=4GB这比任何设备上的物理内存都大(苹果已经提供)。这是通过占用所有可用空间并将其划分为4kb块来实现的。并非应用程序可以访问的所有内存都同时位于物理内存中。这些4kb的块是调用页。您的分配将从更大的虚拟内存块中分离出来。然后这些虚拟内存对象映射到物理内存。

我建议在启用VM Tracker instrument的情况下运行应用程序。虚拟机跟踪器显示图形内存使用情况(虚拟内存)。最可能的情况是,UIImageView动画在内存中加载的图像太多,无法执行动画。一个更有效的动画技术是合适的。那么我有什么选择来获得一个更有效的动画技术呢?另外,VM Tracker是否会显示我是否同时加载多个图像?+1。这是一个很棒的视频,在使用记忆工具之前应该先看一下。我看了视频,我想我明白了,但我仍然不知道如何判断我的应用程序是否一次加载过多。除了确保它不会退出外,是否有更安全或更好的方法来确定应用程序是否一次加载过多?如果加载过多,您将收到内存不足警告。确保你正在利用didReceiveMemoryWarning。