Ios 在iPad上加载5MB图像

Ios 在iPad上加载5MB图像,ios,image,memory-management,xamarin.ios,Ios,Image,Memory Management,Xamarin.ios,我需要在游戏启动前加载5MB高清图像(用于iPad)。它在加载过程中的某个地方崩溃。为了确认是5MB的问题,我试着加载2.5MB的LD图像(iPhone质量)。它运行正常,没有崩溃 这是否意味着我不能保留5MB或更多的内存?应该有办法做到这一点 当更多的应用程序在后台挂起时,这种情况会更加频繁。如果我在重新启动后立即运行游戏,它不会崩溃。因此,一定是内存问题破坏了我的游戏 你知道我该如何处理吗?5MB压缩图像数据可以很容易地扩展到许多(4x-10x)内存需求,以便解压缩 你知道我怎么处理吗 使用

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

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

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

你知道我该如何处理吗?

5MB压缩图像数据可以很容易地扩展到许多(4x-10x)内存需求,以便解压缩

你知道我怎么处理吗

使用苹果的仪器,看看内存使用情况

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

然后查看是否可以更早地处理该图像。图像可能非常大(而且iOS内部有大量内存,这就是为什么使用仪器会比MonoTouch自己的HeapShot profiler提供更好的图像),因此手动处理图像(而不是等待GC通常是个好主意)

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

5MB压缩图像数据可以很容易地扩展到许多(4x-10x)内存需求,以使其解压缩

你知道我怎么处理吗

使用苹果的仪器,看看内存使用情况

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

然后查看是否可以更早地处理该图像。图像可能非常大(而且iOS内部有大量内存,这就是为什么使用仪器会比MonoTouch自己的HeapShot profiler提供更好的图像),因此手动处理图像(而不是等待GC通常是个好主意)


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

是的,感谢您提醒我这一点。我得到的所有图像都是压缩的(png或jpg)。也许我将不得不重新考虑我的内存管理策略。是的,谢谢你提醒我这一点。我得到的所有图像都是压缩的(png或jpg)。也许我将不得不重新思考我的内存管理策略。