【发布时间】:2017-02-21 09:58:08
【问题描述】:
我试图弄清楚你在 Guava CacheBuilder maximumSize() 和 maximumweight(),weigher 中指定的数字代表什么。
假设我的代码中有这样的东西,
Cache<String, Object> programCache = CacheBuilder.newBuilder()
.maximumSize(1000)
.build();
我指定为最大大小的 1000 是否意味着在缓存开始踢出 LRU 之前我可以在缓存中拥有一千个不同的条目(无论对象可能是什么大小)?如果是这种情况,对象的大小是否有限制?
或者这 1000 是否意味着,我有一个 1000mb(MB 是否正确?)可以使用,并且我可以在缓存中拥有尽可能多的对象,直到 1000mb 才开始踢出 LRU?
那么maximumweight到底是什么?
如果提供了一些良好的配置来限制 500MB 的 Guava 缓存内存,我们将不胜感激。
【问题讨论】:
-
在 Java 中测量任何类型的内存消耗都非常困难(并且可能很慢)。缓存不努力。