代码之家  ›  专栏  ›  技术社区  ›  Ash

iPhone:内存使用量有多大?[关闭]

  •  0
  • Ash  · 技术社区  · 15 年前

    这是一个很奇怪的问题,我想,但我从来没有真正处理内存分配之前,所以现在我真的偏执使用太多或忘记释放的东西。我发现了一个非常有用的内存泄漏工具(我很自豪地看到,至少到目前为止,我没有损失任何东西),还有一个分配工具,我假设它是用来测量在应用程序运行时的任何给定点上使用了多少内存。然而,我不确定我有多少记忆 快用完了。

    我认为我的ipodtouch中有一个不错的256M,不太确定,但我不知道系统进程占用了多少,也不知道在我开始遇到内存不足的问题之前,我能安全使用多少。目前,我的程序占用了大约4MB的空间,这对于它所做的事情来说似乎是相当高的,但我猜至少有一些是无法停止的系统进程,或者像我使用的大型图形背景这样的高维护的东西。

    简而言之,有人能给我一个很好的基准数据,我的应用程序应该在任何给定的时间使用的最大内存量方面的目标?iphone4和iPad的数据也不错,如果它们有显著差异的话。

    -灰烬

    2 回复  |  直到 15 年前
        1
  •  1
  •   Kendall Helmstetter Gelner    15 年前

    没有确切的答案。有几件事需要注意:

    1) 如果你的应用程序随着时间的推移使用了越来越多的内存,那么它会比大部分时间正确释放内存,但会犯一些错误的应用程序更快被杀死。别忘了有一个看门狗进程,它有一个(看似)复杂的终止应用程序的公式,不同的应用程序可以因为不同的原因在不同的内存使用级别终止。

    2) iPhone4的内存比以前的手机多得多,但由于用户同时处理多个任务,只使用内存是很不礼貌的。在这里,多任务处理比保持低内存占用更重要(当你自己的应用程序在后台时,内存占用越多,它被杀死的可能性就越大)。

    3) 认真对待内存警告,倾尽一切可能。它将使你的应用程序运行更长时间,并再次帮助它在后台生活更长的时间。

        2
  •  0
  •   Micah Hainline    14 年前

    在过去的两天里,我在分析我最新应用程序的内存占用情况,发现了一个有趣的事实:

    当应用程序收到内存警告时,它将释放当前不可见的视图。这导致我的应用程序崩溃,因为我没有考虑到这一点。我最初以为是释放已自动释放的对象,但这是不正确的。

    如果我重新启动我的手机,它可以处理高达8mb的堆没有任何警告。我猜在iOS4中,这也取决于你在后台运行了多少东西。我在iPhone4上安装了ios4.0.1。

    iPad/iphone3gs有256mb,iPhone4有512mb,但这并不意味着它可以全部用于一个进程。我记得在iOS3.0早期,我的一个应用程序被操作系统以32mb的速度终止。

    推荐文章