美文网首页
SDWebImage在加载大图时导致内存一直增加问题记录.

SDWebImage在加载大图时导致内存一直增加问题记录.

作者: 羽辉 | 来源:发表于2017-09-06 17:29 被阅读0次

    在collectionView中加载大量图片,上拉加载,内存一直飙升...第一反应是重用问题,可是仔细想来,collectionView不是tableview,重用应该不是问题.
    最后检查代码也发现不是重用的锅,没办法只能leak了...
    然后就发现了这幅图...

    屏幕快照 2017-09-06 17.17.37.png

    简直可怕...
    百度一发,发现是个挺常见的问题,但是回答都比较老,有直接改SD源文件的,也有一些比较老的方法,看一眼时间就没有尝试- -...

    不扯了,解决方法...
    我找到了2种:
    方法一:
    简单粗暴,直接使用AFNetworking的网络图片加载...
    试了试还不错,没有内存飙升,也没发现什么其他的bug效果不错.

    方法二:
    碰到问题不解决了总是浑身难受,那么直面问题吧~
    发现主要是
    image = [UIImage decodedImageWithImage:image]
    这个方法的锅.
    http://blog.csdn.net/guojiezhi/article/details/52033796
    这篇文章解释的很好,也有解决方法,就是可能版本比较老. 这里谢谢大神解惑,转一个.

    然后解决方法:
    其实SD的作者也有说明:


    屏幕快照 2017-09-06 17.25.34.png

    所以解决方案就出炉了:
    [SDImageCache sharedImageCache].config.shouldDecompressImages = NO;
    [SDWebImageDownloader sharedDownloader].shouldDecompressImages = NO;
    要注意,这些都是单例...哪里用写哪里,如果不想影响其他图片加载,最好再改变回默认值,也就是都YES就行了.

    PS: 以上两种方案只是针对高清图片展示时的内存飙升,对于加载大量图片导致内存持续升高...暂时只有定期清理SD的缓存了...有大触知道方法求告知...

    相关文章

      网友评论

          本文标题:SDWebImage在加载大图时导致内存一直增加问题记录.

          本文链接:https://www.haomeiwen.com/subject/wudvjxtx.html