我需要在游戏启动前加载5MB高清图像(适用于iPad)。它在加载过程中的某个地方崩溃了。好吧,为了确认这是5MB的问题,我接着尝试加载2.5MB的LD图像(iPhone质量)。它运行正常,没有崩溃。
这是否意味着我无法保留5MB或更多内存?应该有办法做到这一点。
当更多应用在后台挂起时,会更频繁地发生这种情况。如果我在干净重启后立即运行我的游戏,它不会崩溃。因此,它必须是一个内存问题崩溃我的游戏。
知道如何处理这件事吗?
答案 0 :(得分:1)
5MB的压缩图像数据可以轻松地探索许多(4x-10x)内存要求,使其未压缩。
知道如何处理这件事吗?
使用Apple的仪器并查看内存使用情况。
接下来确保iOS本身不缓存图像(查看您正在使用的API及其文档,有些会缓存,有些则不会。)
然后看看你是否可以提前处理图像。图像可能非常大(并且它们的大量内存是iOS的内部,这就是为什么使用Instruments会比MonoTouch自己的HeapShot分析器提供更好的图像)所以手动处理它(而不是等待GC通常是一个好的主意)。
另请查看是否可以延迟加载某些图像(或至少是其解压缩版本),例如在处理完第一个之后。