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

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

作者: 不会写代码的尬先生 | 来源:发表于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