今天做一个图片展示列表,搭好界面,接好接口,渲染数据,run………crash.
报的是内存泄漏的锅,看了下Memory,发现每次一进这个界面内存直接增到几百兆,然后crash。
这简直不能忍,用instrument跑一跑,看到如图
大部分内存都消耗在给图片分配了,明显是因为调用了
|
|
SDWebImageDownloader点进去看到有这个属性
|
|
这个方法意思差不多就是 用于对图片进行解压缩并且缓存起来,以保证tableviews/collectionviews 交互更加流畅,默认的是YES,如果因为过量的内存导致crash,可以将这个属性设置为NO
仿佛看到了救星,设置完,run…….crash!!
WTF?貌似没用,内存一点不减。 貌似在6S,9.3系统以下禁止解压缩没有效果。
是不是缓存的原因,试试每次加载图片清空memcache。
|
|
依然没什么效果
那就在控制器dealloc的时候,执行
|
|
还是没用
试着改一下 SDWebImageDownloaderOptions , 一开始用的 SDWebImageDownloaderProgressiveDownload ,改为 SDWebImageDownloaderIgnoreCachedResponse。
跑起来
稳定在18M左右
这个就有点费解了,看一下
|
|
就一个 Cache的区别,差别有点大,待我深入了解一下