YYWebImage
YYWebImage copied to clipboard
获取到图片缓存大小很大
使用YYWebImage缓存图片,发现只加载十几张图片获取到的缓存大小就到了十几兆,换成SDWebImage做同样的请求内存大小只有几百KB,请问[[[YYImageCache sharedCache] diskCache] totalCost]这个方法获取到的缓存大小是不是有问题呢?
YYDiskCache里面其实用到了YYKVStorage,是通过SQLite写入到磁盘的,所以可能比文件二进制本身要大一些。这是为了效率考量。
另外还有些case下,imageData是空的(你自己丢进来一个UIImage),这时候会使用YYImage的图片编码,生成文件的大小会比当时下载的图可能大一些(编码有时间/空间的均衡,不同图片格式有很多压缩算法)
@dreampiggy 那也就是说项目中是不能直接拿这个方法来计算缓存大小的?还有其他方法可以正确获取到整个缓存的大小吗?
@lvXiaoPeng 不,磁盘占用就是这么大。我意思缓存的图片是经过解码之后的,而且存到SQLite的blob type了,不是原来图片的Data
@dreampiggy 你说的意思我大致理解了,但是将这个缓存大小直接显示出来是很大的,你们项目中如果用到YYWebImage在显示缓存大小这块会怎么做呢?直接显示YY计算出来的大小会让用户觉得有点偷流量的嫌疑
@lvXiaoPeng 。。。有这样的需求,不如直接在拿到的缓存大小上乘个百分比吧。这样用户看到的不是真正磁盘占用的值。不过,用户也能通过“通用->存储空间->应用“看到你这个App真实占用大小。
@dreampiggy 非常感谢你的解答,看来就只能先给用户一个假象了。