SDWebimage 加载大量图片的时候内存泄露的解决方法(ios自学笔记)
2015-12-21 10:13
489 查看
SDWebImage这里不用多讲,都用过!!!
但是最近在使用过程中发现,在UITableView中不断加载更多的内容,使用SDWebImage会造成内存占用越来越大,稍微找了下问题原因,发现不少开发者都遇到过这个问题,中文的资料没有搜到该问题的解决办法,为了方便国内其他开发者遇到类似问题不浪费时间,这篇blog把解决方法记录如下:
首先检查了SDWebImage代码中对于memory warning的处理:
其中self.memCache是NSCache类型的,可以看到SDWebImage本身对内存警告执行了操作,但是并没有什么X用。
用Instruments的allocations分析了一下内存使用情况:
可以看到内存基本都在decodedImageWithImage:这个方法里被占用了
解决方法如下:
添加#import
"SDImageCache.h"头文件
在使用SDWebImage加载较多图片造成内存警告时,定期调用
我这边是在上拉刷新的方法里面加入
即可解决。
但是最近在使用过程中发现,在UITableView中不断加载更多的内容,使用SDWebImage会造成内存占用越来越大,稍微找了下问题原因,发现不少开发者都遇到过这个问题,中文的资料没有搜到该问题的解决办法,为了方便国内其他开发者遇到类似问题不浪费时间,这篇blog把解决方法记录如下:
首先检查了SDWebImage代码中对于memory warning的处理:
- (void)clearMemory { [self.memCache removeAllObjects]; }
其中self.memCache是NSCache类型的,可以看到SDWebImage本身对内存警告执行了操作,但是并没有什么X用。
用Instruments的allocations分析了一下内存使用情况:
可以看到内存基本都在decodedImageWithImage:这个方法里被占用了
解决方法如下:
添加#import
"SDImageCache.h"头文件
在使用SDWebImage加载较多图片造成内存警告时,定期调用
我这边是在上拉刷新的方法里面加入
[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];
即可解决。
相关文章推荐
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- IE7降低内存和降低CPU的几个技巧
- upload上传单张图片
- 图片引发的溢出危机(图)
- 如何高效的使用内存
- DOS下内存的配置
- XP/win2003下发现1G的内存比512M还慢的解决方法
- C#实现把彩色图片灰度化代码分享
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- SQL语句实现查询SQL Server内存使用状况
- 随鼠标移动的图片或文字特效代码
- CSS 图片横向排列实现代码
- C#实现将Email地址转成图片显示的方法
- 超级经典一套鼠标控制左右滚动图片带自动翻滚