美文网首页
图片列表加载高分辨率图片造成卡顿和内存暴增的解决办法

图片列表加载高分辨率图片造成卡顿和内存暴增的解决办法

作者: 不会写代码的尬先生 | 来源:发表于2018-03-22 17:10 被阅读0次

    项目中有页面是瀑布流,本猿美美的布完局,填上数据,mmp怎么这么卡顿,在导航栏上写了个FPS测试工具竟然在40左右徘徊,难道写代码的姿势不对?(绝不承认有bug!)

    排查一番发现sb用户🤣上传的高清大图,没有低于2M的,更sb🤣的后台返给我的缩略图和原图都特别大,WTF???但是也不至于卡成这个样啊,一顿Google发现罪魁祸首是SDWebimage对图片解压缩操作非常耗内存,解决方案如下:
    在viewDidLoad里关闭SDWebimage的解压缩操作

        SDImageCache *canche = [SDImageCache sharedImageCache];
        canche.config.shouldDecompressImages = NO;
        
        SDWebImageDownloader *downloder = [SDWebImageDownloader sharedDownloader];
        downloder.shouldDecompressImages = NO;
    

    页面销毁再打开

    - (void)dealloc
    {
        SDImageCache *canche = [SDImageCache sharedImageCache];
        canche.config.shouldDecompressImages = YES;
        
        SDWebImageDownloader *downloder = [SDWebImageDownloader sharedDownloader];
        downloder.shouldDecompressImages = YES;
    }
    

    你会猛然发现,之前的FPS是这样的


    屏幕快照 2018-03-22 16.56.23.png

    是这样的


    屏幕快照 2018-03-22 16.56.29.png

    用了我的解决方案是这样的


    屏幕快照 2018-03-22 16.56.05.png

    以上。

    相关文章

      网友评论

          本文标题:图片列表加载高分辨率图片造成卡顿和内存暴增的解决办法

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