我想使用ehcache3。对于一些 junit 测试,我需要知道缓存中条目的大小。我没有找到方法。如何获取 ehcache 3 中条目(不是内存)的大小?
问候
本杰明
由于它仅用于测试,因此您最好的选择是
int count = 0;
for(Cache.Entry<Long, String> entry : cache) {
count++;
}
对于 Ehcache 3.x,您可以从 loicmathieu 获得答案:
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 测试代码