Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Guava-Google缓存-loadSuccessCount始终为0_Java_Caching_Guava - Fatal编程技术网

Java Guava-Google缓存-loadSuccessCount始终为0

Java Guava-Google缓存-loadSuccessCount始终为0,java,caching,guava,Java,Caching,Guava,我正在使用番石榴缓存,它打印在下面。loadSuccessCount和totalLoadTime始终为零 CacheStats{hitCount=0,missCount=13,loadSuccessCount=0, loadExceptionCount=0,totalLoadTime=0,RejectionCount=6} 起初所有的数据都是0,我开始记录数据。仍然加载成功计数为零。它应该返回缓存查找方法成功加载新值的次数 请帮助解释为什么这没有给出正确的值 代码: com.google.com

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

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

起初所有的数据都是0,我开始记录数据。仍然加载成功计数为零。它应该返回缓存查找方法成功加载新值的次数

请帮助解释为什么这没有给出正确的值

代码:

com.google.common.cache.cache newCache=CacheBuilder.from(configurations).recordStats().build();
公共void put(字符串键,对象o){
newCache.put(键,o);
}
公共对象获取(字符串键){
对象o=newCache.getIfPresent(键);
返回o;
}
更新:


在stats、loadSuccessCount、loadExceptionCount、totalLoadTime中,这些都适用于LoadingCache。不适用于我正在使用的简单缓存。

您发布的代码从不允许加载程序加载任何内容:

  • 第一种方法将给定的对象放入缓存中,放在给定的键下。因此不涉及装载机
  • 如果给定的键已经存在,那么第二个方法将获取与该键关联的值,并且不执行它不存在的任何操作。所以装载机也不涉及

事实上,您甚至没有加载缓存,因此加载的数量始终为0

您发布的代码从不允许加载程序加载任何内容:

  • 第一种方法将给定的对象放入缓存中,放在给定的键下。因此不涉及装载机
  • 如果给定的键已经存在,那么第二个方法将获取与该键关联的值,并且不执行它不存在的任何操作。所以装载机也不涉及

事实上,您甚至没有加载缓存,因此加载的数量始终为0

您发布的代码从不允许加载程序加载任何内容:

  • 第一种方法将给定的对象放入缓存中,放在给定的键下。因此不涉及装载机
  • 如果给定的键已经存在,那么第二个方法将获取与该键关联的值,并且不执行它不存在的任何操作。所以装载机也不涉及

事实上,您甚至没有加载缓存,因此加载的数量始终为0

您发布的代码从不允许加载程序加载任何内容:

  • 第一种方法将给定的对象放入缓存中,放在给定的键下。因此不涉及装载机
  • 如果给定的键已经存在,那么第二个方法将获取与该键关联的值,并且不执行它不存在的任何操作。所以装载机也不涉及


事实上,您甚至没有加载缓存,因此加载的数量始终为0

查看其他值
hitCount=0,missCount=13
。这里有些不对劲。我们不能在看不到任何代码行的情况下说一些代码应该做什么,为什么它会以某种方式运行。发布重现此问题的代码。@JB Nizet我已经添加了缓存生成器和get,put方法代码。@boristspider过了一段时间后,我可以看到良好的命中率。“CacheStats{hitCount=25,missCount=17,loadSuccessCount=0,loadExceptionCount=0,totalLoadTime=0,ReceictionCount=9}”查看其他值
hitCount=0,missCount=13
。这里有些不对劲。我们不能在看不到任何代码行的情况下说一些代码应该做什么,为什么它会以某种方式运行。发布重现此问题的代码。@JB Nizet我已经添加了缓存生成器和get,put方法代码。@boristspider过了一段时间后,我可以看到良好的命中率。“CacheStats{hitCount=25,missCount=17,loadSuccessCount=0,loadExceptionCount=0,totalLoadTime=0,ReceictionCount=9}”查看其他值
hitCount=0,missCount=13
。这里有些不对劲。我们不能在看不到任何代码行的情况下说一些代码应该做什么,为什么它会以某种方式运行。发布重现此问题的代码。@JB Nizet我已经添加了缓存生成器和get,put方法代码。@boristspider过了一段时间后,我可以看到良好的命中率。“CacheStats{hitCount=25,missCount=17,loadSuccessCount=0,loadExceptionCount=0,totalLoadTime=0,ReceictionCount=9}”查看其他值
hitCount=0,missCount=13
。这里有些不对劲。我们不能在看不到任何代码行的情况下说一些代码应该做什么,为什么它会以某种方式运行。发布重现此问题的代码。@JB Nizet我已经添加了缓存生成器和get,put方法代码。@boristspider过了一段时间后,我可以看到良好的命中率。“CacheStats{hitCount=25,missCount=17,loadSuccessCount=0,loadExceptionCount=0,totalLoadTime=0,RejectionCount=9}”您能解释一下loader吗?很抱歉没有更好地理解此缓存。LoadingCache是使用Loader函数构建的缓存。典型示例:您希望缓存网页。因此,您可以使用加载程序创建缓存。加载器的工作是根据其键(网页的URL)获取网页。从缓存中获取给定URL的页面时,缓存会查看是否已经有该网页。如果它这样做了,它将返回它。否则,它调用加载程序,然后存储返回的网页并返回它。有关更多详细信息,请参阅。您能解释一下加载器吗?很抱歉没有更好地理解此缓存。LoadingCache是使用Loader函数构建的缓存。典型示例:您希望缓存网页。因此,您可以使用加载程序创建缓存。加载器的工作是根据其键(网页的URL)获取网页。从缓存中获取给定URL的页面时,缓存会查看是否已经有该网页。如果它这样做了,它将返回它。否则,它调用加载程序,然后存储返回的网页并返回它。有关更多详细信息,请参阅。您能解释一下加载器吗?对不起,没有
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 ;
}