ibireme / YYWebImage

Asynchronous image loading framework.
MIT License
3.56k stars 615 forks source link

使用YYWebImage加载图片有内存警告,App瞬间闪退 #81

Closed liuyuanming closed 8 years ago

liuyuanming commented 8 years ago

大神,使用YYWebImage时,当列表页有大量图片而且来回浏览会收到内存警告,App瞬间闪退,有什么好办法吗?下边的方法不能解决啊

YYMemoryCache memoryCache = [YYWebImageManager sharedManager].cache.memoryCache;/获取内存缓存 memoryCache.shouldRemoveAllObjectsOnMemoryWarning = YES;//内存警告的时候删除所有内容 memoryCache.shouldRemoveAllObjectsWhenEnteringBackground = YES;//进入后台删除所有内容 memoryCache.countLimit = 80 * 1024 * 1024;//80M memoryCache.costLimit = 80 * 1024 * 1024;//80M memoryCache.ageLimit = 12 * 60 \ 60;//cache存在的时间限制设置

ibireme commented 8 years ago

有可能是循环引用了。 之前遇到过一个这个问题:https://github.com/ibireme/YYWebImage/issues/72

liuyuanming commented 8 years ago

好的,我在按照这个思路做一次彻底分析

liuyuanming commented 8 years ago

谢谢你,牛人,排查发现的确有循环引用问题,不过关于缓存的countLimit、costLimit设置多大为合适 // 设置YYcache缓存大小 YYImageCache cache = [YYWebImageManager sharedManager].cache; cache.memoryCache.countLimit = 80 * 1024 * 1024; cache.memoryCache.costLimit = 70 * 1024 \ 1024;

ibireme commented 8 years ago

一般不用管。。 如果有需要(比如就是需要 App 占用内存低于 80MB),那设置一个大概的 costLimit (最大占用内存字节数)就行了,countLimit 就没必要加限制了。

liuyuanming commented 8 years ago

明白,3Q