【问题标题】:What is the comfortable range for Live Bytes(memory allocation) in an iphone appiPhone应用程序中Live Bytes(内存分配)的舒适范围是多少
【发布时间】:2010-07-19 15:48:51
【问题描述】:

运行 iphone 应用程序的舒适范围是多少。

我的应用目前峰值约为 5.4 mb,想知道导致崩溃的正确数量。

我听说在 iphone 3G 上减去正在运行的应用程序(例如 Mail、Safari 等)大约有 40 mb。

有人知道这件事的真相吗?

【问题讨论】:

  • 没有人很确定确切的数字,但对于估计.. 请参阅重复的 duplicate question

标签: iphone memory-management


【解决方案1】:

一位 Apple 工程师告诉我,3G 和 3GS 上大约 25 megs 可用于应用程序。在我的应用程序被杀死之前,我已经对此进行了测试并看到了大致相同的数字。不过现在不知道细节,使用后台应用程序,还是在 iPhone 4 上。

【讨论】:

    【解决方案2】:

    后台应用程序可以在内存警告时被终止,以便为前台应用程序提供更多内存,因此“内存使用”和“空闲内存”的整个概念有些无用。如果您查看应用程序/控制台日志并且没有看到任何内存警告,请不要担心。如果您正在做任何占用大量内存的事情(拍照、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 内存泄漏,但您可以假设大多数用户已升级)。请注意,较新的操作系统通常速度较慢 — 4.0 在 3G 上比 3.1.3 慢很多,但在 3GS 上表现完美。也许这是 ARM 与 Thumb 的较量,或者只是计划过时,但值得了解。

    【讨论】:

    • 很高兴知道谢谢。我有一个 3G,自从我升级到 4.0 后,手机真的很慢。但是我的应用运行良好,是否可以肯定地说它在新设备上运行得更好?
    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2011-07-31
    • 2017-06-22
    相关资源
    最近更新 更多