SDWebImage内存警告分析及解决方案

2019-03-14  本文已影响0人  IUVO

SDWebImage:

SDWebImage运行过程中内存占用过高的问题相信很多同学都遇到过,特别是在处理gif图片的时候,经常导致内存报警。

通过instrucment分析,发现SDWebImage处理gif图片的方法是:将gif资源中每一张imgae写入到内存中,通过animatedImageWithImages的方式播放动画。
这样的好处是,gif轮询播放时,直接从内存中取资源就好了,降低了cpu的占用。也就是说,SDWebImage是以空间换取的流畅度,同时也就出现了内存占用过多的问题。

解决方法:

1、每次只加载一张图片,之前的立即释放:
   // [[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];
2、使用YYWebimage代替。

YYImage:

通过instrument分析,发现了YYImage处理gif图片的方法是:每次从缓存的gif中,读取当前需要展示的image,进行动画展示。这样做的好处是,不用为gif的每张image开辟空间了,每次都是从一份gif资源中读取一张image就好了,对应的,cpu的资源开销自然也就上来了。

至于如何抉择,看个人咯~

上一篇 下一篇

猜你喜欢

热点阅读