想知道系统是否预分配空的番石榴缓存的任何空间?我是新来的番石榴缓存,有人可以帮我理解这个问题吗?空的番石榴缓存大小?
而且我有下面的代码进行测试:
long preMemUsage = Runtime.getRuntime().totalMemory() -Runtime.getRuntime().freeMemory();
Cache<String, CountObject> cache = CacheBuilder.newBuilder()
.maximumSize(12000)
.expireAfterAccess(7200,TimeUnit.SECONDS)
.concurrencyLevel(10)
.recordStats().build();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long postMemUsage = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
System.out.println("Before: " + preMemUsage);
System.out.println("After: " + postMemUsage);
奇怪的是使用的内存后下降.....不知道为什么。 有人可以解释这一点。
非常感谢:)
神秘是垃圾收集器的方式。这是非常可能的,你应该在尝试计算已用内存之前明确地调用垃圾回收器。尝试了System.gc()' – JiriS