获取ehcache 3中条目的大小

时间:2017-07-06 09:46:19

标签: java size ehcache ehcache-3

我想使用ehcache3。对于某些junit测试,我需要知道缓存中条目的大小。我找不到方法。 如何在ehcache 3中获取条目(而不是内存)的大小?

迎接

本杰明

2 个答案:

答案 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