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

项目中有页面是瀑布流,本猿美美的布完局,填上数据,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

以上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容