Closed. This question needs debugging details。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        4年前关闭。
                    
                
        

我正在使用番石榴缓存,并在下面打印。 loadSuccessCount和totalLoadTime始终为零。


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


最初都是0,我开始记录统计数据。仍然loadSuccessCount为零。它应该返回Cache查找方法成功加载新值的次数。

请帮助为什么这没有给正确的价值。

码:

com.google.common.cache.Cache<Object, Object> newCache = CacheBuilder.from(configurations).recordStats().build();

public void put(String key, Object o) {
    newCache.put(key,o);
}

public Object get(String key) {
    Object o = newCache.getIfPresent(key);
    return o ;
}


更新:

在统计信息中,loadSuccessCount,loadExceptionCount,totalLoadTime-这些适用于LoadingCache。不适用于我正在使用的简单缓存。

最佳答案

您发布的代码永远不会让加载程序加载任何内容:


第一种方法将给定键下的给定对象放入缓存。因此不涉及装载机
第二种方法获取与给定键关联的值(如果已存在),并且不执行任何不存在的操作。因此,加载程序也不参与。


实际上,您甚至没有加载缓存,因此加载数始终为0。

09-25 15:32