Java 缓存系统 - 查找 map 大小

标签 java caching

我正在使用 Java 缓存系统 (JCS - https://commons.apache.org/proper/commons-jcs/ ),我需要查找缓存的大小(来自 org.apache.commons.jcs.access.CacheAccess 类)

通过 CacheAccess.getStats(),我可以获得一个字符串,该字符串提供缓存的统计信息

例如

String stats = ((ICacheAccess<String, Book>) cache).getStats();

并且会给我很多信息

Region Name = bookCache
HitCountRam = 0
HitCountAux = 0
---------------------------Memory Cache
List Size = 5015
Map Size = 5015
Put Count = 5015
Hit Count = 0
Miss Count = 0
---------------------------Indexed Disk Cache
Is Alive = true
Key Map Size = 0
Data File Length = 0
Hit Count = 0
Bytes Free = 0
Optimize Operation Count = 0
Times Optimized = 0
Recycle Count = 0
Recycle Bin Size = 0
Startup Size = 0
Purgatory Hits = 0
Purgatory Size = 0
Working = true
Alive = false
Empty = true
Size = 0

但我需要的只是 map 或列表大小。

任何想法 - 除了正则表达式:-)

最佳答案

你可以试试

List<IStatElement> stats = ((ICacheAccess<String, Book>) cache).getStatistics().getStatsElements();
// using CollectionsUtil from commons-collection
CollectionsUtil.select(stats, new Predicate<IStatElement>() {
    public boolean evaluate(IStatElement elem) {
        String name = elem.getName();
        return "List Size".equals(name) || "Map Size".equals(name);
    }
}); 

关于Java 缓存系统 - 查找 map 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855582/

相关文章:

java - 为什么 CLASSPATH 对于 Python 失败但对于 RazorSQL 却有效?

java - 如何在 JFrame 上正确显示 PNG

python - 如何在 Django 中设置 Memcached 检索超时

java - 如何在 5 分钟后自动从内存中释放数据表

java - 如何通过 Maven 将 Google 的 OAuth 客户端导入 IntelliJ?

java - 速度模板不起作用

java - Logback 文件错误 : no applicable action for [rollingPolicy], 当前模式是 [[configuration][appender][rollingPolicy]]

您系统上的缓存大小估计?

wpf - 如何重用 DataTemplate 中的控件实例?

android - 自动登录应用程序