谷歌番石榴缓存 - cleanUp和invalidateAll

时间:2018-05-11 18:17:08

标签: java caching guava

对于这两种方法,文档并不是那么清楚 我将直接提出一个问题:我应该使用哪一个来从缓存的对象中释放堆? 查看LocalManualCacheLocalCache的源代码,似乎invalidateAll()是可行的方式,因为Segment表的条目已设置为空。
那么cleanUp()是什么意思?

1 个答案:

答案 0 :(得分:1)

来自CacheBuilder Javadoc:

  

如果请求expireAfterWrite或expireAfterAccess,则可能会在每次缓存修改,偶尔的缓存访问或对Cache.cleanUp()的调用时逐出条目。

cleanUp通过并确保已经过期的元素被逐出,因为Cache的设计不一定会在条目到期时立即逐出。它并没有消除所有条目,只是已经过期的条目。 invalidateAll删除缓存中的每个条目。