学习Guava Cache(二)Guava caches(2)CacheStats类
Guava Cache 提供了一种非常简便的方式,用于收集缓存执行的统计信息,需要注意的是,跟踪缓存操作将会带来性能的损失,想要收集缓存的信息,我们只需要在使用CacheBuilder的时候声明我们想要收集统计信息即可:
final LoadingCache<String, String> cache =
CacheBuilder.newBuilder()
.recordStats()
.concurrencyLevel(2)
.expireAfterWrite(100, MILLISECONDS)
.removalListener(removalListener)
.maximumSize(5000)
.build(countingIdentityLoader);
上面的代码,我们通过建造者模式构造了一个LoadingCache实例,想要启用缓存信息的统计,我们唯一要做的就是在builder里面通过recordStats()注册,而想要获取统计的信息,我们只需要通过Cache或LoadingCache调用stats()方法,就将返回一个CacheStats实例,通过CacheStats实例可以获取到需要的统计信息,来看接下来的例子:
CacheStats stats = cache.stats();
类的详细信息
属性
hitCount
:命中的次数missCount
:未命中次数requestCount
:请求次数hitRate
:命中率missRate
:丢失率loadSuccessCount
:成功加载新值的次数loadExceptionCount
:失败加载新值的次数totalLoadCount
:总条数loadExceptionRate
:失败加载新值的比率totalLoadTime
:全部加载时间evictionCount
:丢失的条数
方法
averageLoadPenalty()
:加载新值所花费的平均时间plus(CacheStats other)
:返回一个新的表示当前CacheStats与传入CacheStats之间总计的CacheStats实例。minus(CacheStats other)
:返回一个新的表示当前CacheStats与传入CacheStats之间差异的CacheStats实例。