在iphone应用程序中,Live Bytes(内存分配)的舒适范围是多少

时间:2010-07-19 15:48:52

标签: iphone memory-management

正在运行的iphone应用的舒适范围是多少?

我的应用程序目前达到峰值约5.4 MB,并且想知道导致崩溃的正确数量。

我听说在iphone 3G上有大约40 MB减去正在运行的应用程序,如Mail,Safari等。

有人知道这个事实吗?

2 个答案:

答案 0 :(得分:3)

一位苹果工程师告诉我,3G上大约有25兆,3G上有50兆可用于应用程序。我已经测试了这个并且在我的应用程序被杀之前看到了大致相同的数字。现在不知道细节,使用后台应用程序,还是iPhone 4。

答案 1 :(得分:1)

背景应用程序可以在内存警告中被杀死,为前台应用程序提供更多内存,因此“内存使用”和“可用内存”的整个概念有点无用。如果您观看应用程序/控制台日志并且没有看到任何内存警告,那么请不要担心。如果你做任何模糊记忆的事情(拍照,AVCapture,图像处理),“1级”记忆警告就不足为奇了。 “2级”内存警告意味着你应该有点小心,“3级”是你的应用程序被杀之前的最后一个IIRC。

在您的应用支持的最差设备上进行测试,例如如果您不支持3.1,则运行3.1.3的原始iPhone / iPod Touch或4.0.1上的iPhone 3G / iPod Touch 2G。在旧设备上进行测试还会发现性能问题,尤其是涉及图形硬件的情况 - CALayer.mask,CALayer.contentCenter和UIView.contentStretch仅在3GS及更高版本(iPhone 4,iPad,可能是iPodTouch 3G)上得到适当支持,并且在旧设备上渲染有点奇怪或缓慢。由您来决定旧设备的“可接受”性能。

由于内存/性能原因,通常不值得在旧操作系统上进行测试(2.something中存在syslogd内存泄漏,但您可以假设大多数用户已升级)。请注意,较新的操作系统通常较慢 - 在3G上4.0比<3.1> 慢于3.1.3,但在3GS上表现非常好。也许它是ARM与Thumb,或者只是计划过时,但值得了解。