如果番石榴缓存已满并且没有可驱逐的元素会发生什么?

时间:2017-10-05 19:45:51

标签: caching guava google-guava-cache

我使用谷歌番石榴缓存与基于参考的驱逐。 我想知道如果缓存已满并且没有任何元素被标记为可驱逐会发生什么?是否有内存不足的异常抛出?

1 个答案:

答案 0 :(得分:0)

基于参考的驱逐与Java的标准GC行为基本没有区别 - GC只是忽略了引用在缓存中的存在。如果一个对象超出范围(除缓存之外的任何地方),它将在GC期间从缓存中逐出。如果缓存的所有元素都在其他地方的范围内,因此无法进行GC操作,则会遇到与未使用缓存时完全相同的内存问题。内存中的数据不能超过JVM配置允许的数据。使用引用逐出缓存不会改变这种情况。