YYWebImage icon indicating copy to clipboard operation
YYWebImage copied to clipboard

sqlite-wal文件过大问题,有没有办法控制?

Open kingsword opened this issue 8 years ago • 5 comments

我遇到了这样的问题,自己合成了一些图片,然后利用YYCache进行本地缓存,这些图片会频繁用到,所以没有清空这个cache里面的图片,但是发现一个问题,即便我只是打开应用展示一下这些图片,然后关闭应用,缓存都会增加,后来发现我大概分页加载了100多张这样的图片,然后重启应用,sqlite-wal文件都会增加5M左右,反复试了试,能达到200M+,不知道这个文件什么时候会减小?或者有没有办法控制一下上限?

kingsword avatar Jun 28 '16 07:06 kingsword

这个应该与重启应用无关啊。。每次重启后,会重新 set 数据吗?

试试设置一下 cache.diskCache.costLimit,或者手动调用 diskCache trimToXXX 方法看看。

ibireme avatar Jun 28 '16 15:06 ibireme

@ibireme 重启后每次都会读取数据,不会set数据。 如果设置了cache.diskCache.costLimit,达到上限后,部分图片是不是就会被删掉了?但是我不希望删除图片,同时又想控制sqlite-wal文件大小。我也试过非wal模式,数据库性能降了好多,好纠结...

kingsword avatar Jun 29 '16 03:06 kingsword

可以先试试一个内部的方法 _dbCheckpoint。

另外我很奇怪没有写入的情况下为什么 wal 会增长,能提供一下可复现问题的代码或 demo 吗?

ibireme avatar Jun 29 '16 13:06 ibireme

@kingsword 我这边也出现和你同样的情况:sqlite-wal文件能达到200M+.请问问题解决了吗?

BeanDu avatar Sep 04 '16 06:09 BeanDu

sqlite3_wal_checkpoint 一直执行失败,返回错误码 6

lukapool avatar Dec 11 '19 12:12 lukapool