2012-10-12 56 views
1

我需要在我的游戏启动之前加载5MB的高清图像(用于iPad)。它在加载进程中的某处崩溃。那么,为了确认这是5MB的问题,我尝试加载2.5MB的LD图像(iPhone质量)。它运行良好,没有崩溃。加载5MB图像崩溃iPad

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

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

任何想法如何处理这个?

回答

1

压缩图像数据的5MB可以很容易地explose许多(4X-10X)对存储器的要求让他们未压缩

任何想法如何我可以处理这个?

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

接下来确保iOS本身没有缓存图像(查看你使用的API和他们的文档,有些会缓存,其他人不会)。

然后看看你是否可以更早地处理图像。图像可能相当大(iOS内部有很多内存,这就是为什么使用Instruments会给你一个比MonoTouch自己的HeapShot profiler更好的图像),所以手动处理它(而不是等待GC通常是好的理念)。

另外看看你是否可以延迟加载一些图像(或至少他们的解压缩版本),例如在第一个(一个或多个)被布置之后。

+0

是的,谢谢你提醒我这一点。我得到的所有图像都是压缩​​的(png或jpg)。可能我不得不重新思考我的记忆管理策略。 –