Kotlin Guava Cache没有显示正确的hitCount

问题描述 投票:0回答:1

我正在尝试使用LRU缓存,如此处所示Java time-based map/cache with expiring keys

我的代码:

import com.google.common.cache.CacheBuilder
import java.util.concurrent.TimeUnit

fun main(args: Array<String>) {


val cache = CacheBuilder.newBuilder().maximumSize(100).
    expireAfterAccess(10, TimeUnit.HOURS)
    .build<String, String>()


    cache.put("a", "blah")
    val x = cache.getIfPresent("a")
    cache.stats().also { println(it) }
    println(x)

}

输出:

CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
blah

我期待hitCount为1而不是0。

我在这里错过了什么?

java caching kotlin guava
1个回答
2
投票

你错过了.recordStats()上的CacheBuilder电话:

在缓存操作期间启用CacheStats的累积。没有这个Cache.stats()将返回所有统计数据的零。

© www.soinside.com 2019 - 2024. All rights reserved.