【发布时间】:2013-05-13 08:43:32
【问题描述】:
我正在使用 guava 库 14.0.1 来实现缓存服务(一个包含用于放置和获取值的 servlet 的 Web 应用程序)。 Web 应用程序部署在包含 1GB RAM(谷歌后端)的机器上。写入和读取操作的数量巨大(每秒 50 个查询)。
即使在达到最大大小限制后,机器上使用的 RAM 量也会继续增加。我怀疑内存泄漏。
以下是我用来创建缓存的代码
Cache cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.DAYS)
.initialCapacity(2000000)
.maximumSize(3800000)
.concurrencyLevel(50)
.recordStats()
.build();
使用检索值
Map result = cache.getAllPresent(keys);
使用将值放入缓存中
cache.put(key, value);
我可以使用什么设置来阻止 RAM 使用量超过限制。
【问题讨论】:
-
你在guava项目页面开票了吗? https://code.google.com/p/guava-libraries/issues/list
-
刚刚创建了一个新问题。