ios – 极高的内存使用率 – 如何在iPad上处理大图像?

ios – 极高的内存使用率 – 如何在iPad上处理大图像?,第1张

概述我最近在我的应用程序中遇到了一些内存管理问题. 该应用程序利用了一些高质量的图像,这极大地增加了内存使用量. 以下是有关项目和图像详细信息的一些信息,以使问题更加清晰: >我的项目中添加了大约90个图像.其中一半设计为@ 2x尺寸,以支持新iPad Retina显示屏.因此,每个设备的最大图像数量约为45. >所有图像的Retina版本的总大小约为25兆字节(每个单独图像的大小从10 KB到6.8 我最近在我的应用程序中遇到了一些内存管理问题.

该应用程序利用了一些高质量的图像,这极大地增加了内存使用量.

以下是有关项目和图像详细信息的一些信息,以使问题更加清晰:

>我的项目中添加了大约90个图像.其中一半设计为@ 2x尺寸,以支持新iPad Retina显示屏.因此,每个设备的最大图像数量约为45.
>所有图像的Retina版本的总大小约为25兆字节(每个单独图像的大小从10 KB到6.8 MB不等).同时,所有标准图像的大小等于11兆字节.
>项目的XCode存档大小等于44兆字节.
>标准版图像中的单个图像的最大分辨率约为1500×4000像素,而最小分辨率约为60×60像素.
> Retina版图像中的个人图像的最大分辨率约为3000×8000像素,而最小分辨率约为120×120像素.
> Retina版图像的名称后缀为“@ 2x~ipad”,其他名称后缀为“~ipad”.
>在应用程序生命周期中,只创建了大多数图像的一个实例.
>大约25个图像在应用程序启动期间加载,其余图像在游戏过程中加载.
>我使用[UIImage imagenamed:@“image_name.png”]无论我想加载图像(使用[UIImage imageWithContentsOffile]和[UIImage imageWithData]效率极低).

但这里有问题:

当我使用Instruments跟踪内存使用情况时,我发现应用程序的内存使用率非常高.以下是不同情况下内存分配的统计信息:

>启动时使用标准图像在iPad 2上分配内存:58 MB
>在游戏过程中使用标准图像在iPad 2上分配内存(加载所有图像时):131 MB
>在启动时使用Retina图像在新iPad上分配内存:211 MB
>在游戏过程中使用Retina图像在新iPad上分配内存(加载所有图像时):470 MB

任何想法为什么分配内存比图像的总大小高很多?

解决方法 这可能是因为您使用的图像是使用png或jpg压缩的,并且当解码到内存时,其大小远大于原始文件大小.无论图像内容如何,​​它都会占用宽度*高度* 4字节的内存. 总结

以上是内存溢出为你收集整理的ios – 极高的内存使用率 – 如何在iPad上处理大图像?全部内容,希望文章能够帮你解决ios – 极高的内存使用率 – 如何在iPad上处理大图像?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1081737.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存