Xcode - Iphone内存限制

时间:2012-06-12 06:06:21

标签: iphone ios xcode xcode-instruments

一个应用程序可以使用的最大内存是多少?请使用此消息查找仪器屏幕截图。什么是真正的内存和虚拟内存限制?

screenshot

1 个答案:

答案 0 :(得分:2)

我认为我不能直接回答你的问题,但有些想法:

  1. 就可用的物理RAM而言,正如您从Wikipedia overview of iPhone models所看到的,它对于原始iPhone和3G为128MB,对于3G为256MB,对于4和4S为512MB。

  2. 根据Apple的iOS App Programming Guide,虚拟内存不是来自物理磁盘/存储的分页内存(就像你在桌面操作系统中看到的那样),所以我认为iOS只是将物理内存分配为应用程序的虚拟内存,少于操作系统(和任何后台应用程序)消耗的内存。另外,请参阅Apple在Memory Usage Performance Guidelines中对虚拟内存的讨论。

  3. 最后,请参阅此SO post有关确定可用内存的信息。作为一个数据点的方式,在运行iOS 5.1.1的开发3GS上,SO帖子中的算法报告大约228MB的总可用内存,大约100MB可用(在一个相当简单的故事板ARC测试项目中,有大量的视图控制器,其中只有两个在测试可用内存时被主动使用。如果这是任何迹象,它看起来会产生大部分物理RAM,可能是使用一些内存用于iOS应用程序,如SpringBoard等。如果我在后台运行其他用户应用程序,我的测试应用程序报告的内存相应减少(总“可用”和“免费”...例如,Facebook在后台运行,我丢失了20-30MB),但是如果我手动终止其他应用程序,内存已恢复并可用于我的内存测试应用程序。我假设如果我当前应用程序可用的内存已经足够减少,iOS会解雇我在后台运行的其他应用程序,但我没有测试。

  4. 从底线看,应用程序可用的内存似乎是(a)由设备的特定型号决定的物理RAM的函数; (b)其他应用程序仍在后台运行。