我想使用ehcache3。对于某些junit测试,我需要知道缓存中条目的大小。我找不到方法。 如何在ehcache 3中获取条目(而不是内存)的大小?
迎接
本杰明
答案 0 :(得分:0)
因为它仅用于测试,所以最好的选择是
int count = 0;
for(Cache.Entry<Long, String> entry : cache) {
count++;
}
答案 1 :(得分:0)
对于Ehcache 3.x,您可以从loicmathieu得到答案here:
StatisticsService statisticsService = new DefaultStatisticsService();
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.using(statisticsService)
.build();
cacheManager.init();
CacheStatistics ehCacheStat = statisticsService.getCacheStatistics("myCache");
ehCacheStat.getTierStatistics().get("OnHeap").getMappings();//nb element in heap tier
ehCacheStat.getTierStatistics().get("OnHeap").getOccupiedByteSize()//size of the tier
您可以查看官方的Ehcache测试代码here