我正处于iphone游戏开发的最后阶段:优化和性能调优。我的问题是,游戏在iPhone4和iPad上运行相当顺利,但由于内存不足,它经常在iphone 2和iOS 3.1.3上崩溃。
我已经检查了所有内存泄漏检测/清理过程,Xcode工具除了系统库(见下面的屏幕截图)外,没有泄漏。我也很少使用“自动发布”。
(大图:单击此处)

我还使用"CPU采样器“和”分配“对我的应用程序进行了描述,但对结果有点困惑。这是“分配”基准的结果:
(大图:单击此处)

这是一场比赛后的结果。正如你所看到的,"Live“只有3.93MB,这应该不是什么大问题(根据我的理解) --但这个游戏在iPhone 2 ios 3.1.3上经常崩溃。
我还做了一个"CPU采样器“基准测试,结果如下:
(大图:单击此处)

令我困惑的是,实际内存显示为"22.32MB“,虚拟内存超过100 me,这与”分配基准“的结果有很大不同。
我也感到困惑的是,我的iPhone 3G,运行iOS 4.1,即使它有几乎完全相同的硬件规格与iPhone 2,可以很好地运行我的游戏。它是缓慢的,没有那么快,但它很少崩溃。
所以我的问题是::
发布于 2011-07-01 07:07:51
1.我还能做些什么来识别iphone 2上内存不足的问题?
在iOS模拟器中运行您的应用程序,并使用硬件菜单项“模拟内存警告”项触发内存不足事件,您怀疑这些事件会崩溃。
在真正的设备上测试你的应用程序,但在启动之前,要启动尽可能多的其他应用程序,以减少可用内存的数量。在运行应用程序时,不时切换到app网格,以重新启动其他应用程序。这样,您将使系统生成真正的内存事件,但您不能选择哪个应用程序将接收到它们。
您可以自己生成OOM事件,但随后将运行不同的应用程序。开发时可能有用,但在接近发布时不建议使用。调试“助手”例程所引起的bug非常烦人.
2.系统库对“泄漏”分析结果的泄漏是一个问题吗?
它们可能是你代码的副作用。看看您的应用程序的哪一部分可能正在启动该系统服务,以及您是否发布/取消/关闭所有内容。
3.为什么"CPU采样器“和”分配“显示不同的内存脚印?我没看错吗?
不知道,但想知道:)
4.为什么iPhone 3G运行得比iPhone 2G平滑得多?是因为更新的iOS版本(4.1vs3.1.3)吗?
iPhone 3G比iPhone2拥有更好、更快、更多的硬件。因此,应用程序似乎运行得更快..。如果您的应用程序在更快的硬件中运行得太快,这可能是个问题。确保您的应用程序运行“恰如其分的速度”,不管硬件是另一个问题。
https://stackoverflow.com/questions/6272084
复制相似问题