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