加载5MB的图像撞毁了iPad

时间:2012-10-12 03:58:44

标签: ios image memory-management xamarin.ios

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

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

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

知道如何处理这件事吗?

1 个答案:

答案 0 :(得分:1)

5MB的压缩图像数据可以轻松地探索许多(4x-10x)内存要求,使其未压缩

  

知道如何处理这件事吗?

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

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

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

另请查看是否可以延迟加载某些图像(或至少是其解压缩版本),例如在处理完第一个之后。