【问题标题】:My iphone app will run on any 256MB+ RAM iDevice but crash on every 128MB RAM iDevice [closed]我的 iphone 应用程序将在任何 256MB+ RAM iDevice 上运行,但在每个 128MB RAM iDevice 上都会崩溃 [关闭]
【发布时间】:2010-08-06 16:45:19
【问题描述】:

我在应用商店中有一个应用,它在所有 iDevices(包括 128MB RAM)上运行良好

然后我添加了一些功能,现在应用程序在 128MB iDevices 上崩溃了。

  • 我检查了泄漏并修复了它们。
  • 以前版本和当前版本的内存使用是一样的。
  • 我已经搜索了几天的问题,但找不到问题所在。

有人知道如何找到它吗?

【问题讨论】:

  • 没有足够的细节(你添加了什么功能?你升级设备操作系统了吗?)
  • 我没有升级操作系统。我添加了一个 twitter 引擎,但在崩溃版本上,即使我删除了该引擎,它仍然会崩溃..

标签: iphone memory memory-leaks ram


【解决方案1】:

以前版本的内存使用情况 和当前版本是一样的。

显然,情况并非如此。 :)

特别是,如果您添加了功能,则您添加了代码(可能还有资源)。如果添加代码,则编译后的可执行文件会更大。在 C++ 和使用 STL 的情况下,它可能要大得多。

所以,首先,检查你的代码大小。

无论如何,对于 128MB 设备来说,您似乎正处于内存使用的边缘。请记住,iOS 设备上从 128MB 到 256+MB 的转换不仅仅是将您的应用程序的可用内存增加一倍,因为该 RAM 由系统和您的应用程序共享。实际上,在 128MB 设备上可用的空间远少于 128MB。

下一步是使用分配工具来查看正在使用内存的内容。然后减少使用。


对象的数量无关紧要。大小不是。不过,您说应用程序崩溃了。如果它崩溃了,那么这不仅仅是一个简单的内存不足问题(我之前应该提到过)。发布崩溃。

【讨论】:

  • 二进制大小为 2 兆,非常小。我使用“对象分配”来监控 2 个版本,它们使用相同的分配(25,000 个网络对象),我添加的功能没有使用对象太多.. 25,000 合理吗?如果不是,我如何使用“分配”来找出我在哪里进行分配。我得到的只是库函数调用,而不是我自己的..
【解决方案2】:

崩溃说:“访问错误”,但仅在 128 台设备上。有时它会加载,但是当尝试做某事时它会崩溃。

已解决:我删除了我添加的 twitter 引擎,现在它可以工作了..

谢谢大家:)

【讨论】:

    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多