Unk*_*Bit 5 memory-management instruments large-files ipad ios
我最近在我的应用程序中遇到了一些内存管理问题.
该应用程序利用了一些高质量的图像,这极大地增加了内存使用量.
以下是有关项目和图像详细信息的一些信息,以使问题更加清晰:
我的项目中添加了大约90个图像.其中一半设计为@ 2x尺寸,以支持新iPad Retina显示屏.因此,每个设备的最大图像数量约为45.
所有图像的Retina版本的总大小约为25兆字节(每个单独图像的大小可在10 KB到6.8 MB之间变化).同时,所有标准图像的大小等于11兆字节.
项目的XCode存档大小等于44兆字节.
标准版图像中的单个图像的最大分辨率约为1500x4000像素,而最小值约为60x60像素.
Retina版图像中的单个图像的最大分辨率约为3000x8000像素,而最小分辨率约为120x120像素.
Retina版图像的名称后缀为"@ 2x~ipad",其他名称后缀为"~ipad".
在应用程序生命周期中只创建了大多数图像的一个实例.
在应用程序启动期间加载了大约25个图像,其余图像在游戏过程中加载.
我用[UIImage的imageNamed:@ "image_name.png"]无论我要加载的图像(使用[UIImage的imageWithContentsOfFile]和[UIImage的imageWithData]为极其低效).
但这里有问题:
当我使用Instruments跟踪内存使用情况时,我发现应用程序的内存使用率非常高.以下是不同情况下内存分配的统计信息:
在启动时使用标准图像在iPad 2上分配内存:58 MB
在游戏过程中使用标准图像在iPad 2上分配内存(加载所有图像时):131 MB
任何想法为什么分配内存比图像的总大小高很多?