1

在我的游戏启动之前,我需要加载 5MB 的高清图像(适用于 iPad)。它在加载过程中的某个地方崩溃。好吧,为了确认是 5MB 的问题,然后我尝试加载 2.5MB 的 LD 图像(iPhone 质量)。它运行正常,没有崩溃。

这是否意味着我不能保留 5MB 或更多的内存?应该有办法做到这一点。

当更多应用程序在后台挂起时,这种情况会更频繁地发生。如果我在干净重启后立即运行我的游戏,它不会崩溃。因此,我的游戏崩溃一定是内存问题。

知道我该如何处理吗?

4

1 回答 1

1

5MB 的压缩图像数据可以很容易地满足许多 (4x-10x) 的内存需求,以使其未压缩

知道我该如何处理吗?

使用 Apple 的 Instruments 并查看内存使用情况。

接下来确保 iOS 本身没有缓存图像(查看您正在使用的 API 及其文档,有些会缓存,有些不会)。

然后看看你是否可以更早地处理图像。图像可能非常大(并且它们的大量内存是 iOS 内部的,这就是为什么使用 Instruments 可以为您提供比 MonoTouch 自己的 HeapShot 分析器更好的图像)所以手动处理它(而不是等待 GC 通常是一个好的主意)。

还要看看你是否可以延迟加载一些图像(或者至少是它们的解压缩版本),例如在第一个(s)被处理之后。

于 2012-10-12T13:29:07.857 回答