【问题标题】:Memory uses limit on iPhoneiPhone 内存使用限制
【发布时间】:2011-03-27 18:56:21
【问题描述】:

应用程序在被 iOS 踢出之前可以占用多少内存? 内存量是否取决于设备版本? 我开发了一个使用 30+ mb 的应用程序,它在 iPhone 2g 上被踢了。它可以在 iPhone 4 或 3GS 上运行吗?

【问题讨论】:

    标签: iphone memory-management


    【解决方案1】:

    iPhone 2 上所有应用程序的资源应该保持在 20 MB 以下。你可以稍微过去,但就是这样,否则会出现内存警告。所有东西都只有 128 MB 的总物理内存 - 这是操作系统以及您自己的应用程序。

    【讨论】:

      【解决方案2】:

      我对 iPhone 3G 的体验是,您应该尽量保持尽可能小——在构建您的数据模型时考虑到可弃用性,因为您需要弃用。 20mb 超出了限制。如果手机最近重启过,25 可能没问题。你可能永远不会得到 30mb。

      相比之下...我设法在我的 iPhone 4 上提示了一次内存警告,但这是由于无限循环错误导致无限次下载相同的图像文件。换句话说,粉碎 4 确实需要一些非常激烈的东西。并不是说您可以完全忽略内存管理(泄漏仍然是泄漏),但您肯定有一些喘息的空间。

      3G 介于两者之间。我没有要测试的,但我希望它的性能更像 4 而不是 3G,因为虽然板载内存是 3G 的两倍,但操作系统仍然占用相同的空间,这意味着所有的新记忆都由你来玩。

      【讨论】:

      • 几乎所有你都可以玩...... 3GS(和 iPhone 4)都有更多的功能,这些功能需要更多的操作系统内存。但最终,与物理内存翻倍相比,它并没有那么重要。
      • 不要忘记多任务处理。随着应用程序在内存中堆积,最大的应用程序首先被终止,因此保持较低的内存使用率是有益的,这样您的应用程序可以停留更长时间。此外,我还看到旧 iOS 设备上每个应用程序的内存使用上限为 30 MB。上一步会导致立即终止。
      • @Brad - 没错。无论您使用哪种设备,数据结构的可修剪性都是一件好事,而了解何时何地进行修剪同样重要。
      • @BradLarson 我们是通过 Instruments 中的“Live Bytes”来测量这个,还是我们都在这里使用的更直接/正确的测量?
      • @Yar - 使用内存监视器工具。它可以诚实地全面了解您的应用程序的内存使用情况。对象分配隐藏了一些内存使用:stackoverflow.com/questions/5518918/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2011-09-25
      • 2021-05-12
      • 2014-04-27
      • 2012-09-28
      • 2017-05-12
      相关资源
      最近更新 更多