1

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

问候

本杰明

4

2 回答 2

0

由于它仅用于测试,因此您最好的选择是

    int count = 0;
    for(Cache.Entry<Long, String> entry : cache) {
        count++;
    }
于 2017-07-06T18:32:55.100 回答
0

对于 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 测试代码

于 2020-02-09T23:04:39.460 回答