Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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 Hibernate缓存导致@Cacheable实体的低百分比性能下降?_Java_Hibernate_Second Level Cache - Fatal编程技术网

Java Hibernate缓存导致@Cacheable实体的低百分比性能下降?

Java Hibernate缓存导致@Cacheable实体的低百分比性能下降?,java,hibernate,second-level-cache,Java,Hibernate,Second Level Cache,我有一个使用Hibernate持久性库的Java应用程序,它有大约100个映射类。为了尝试二级缓存,我在5个映射类中添加了@Cacheable。这导致标准计算任务花费的时间是以前的两倍,尽管缓存项上有几处命中(如Couchbase缓存监控控制台上所示)。由于Couchbase统计数据的瞬时性,我无法得到准确的平均命中率,但我估计只有10-20%左右 为某些实体启用缓存是否会影响其他未标记为@Cacheable的实体的访问时间,从而导致性能下降? 或者,这仅仅是由于缓存查询的延迟增加,加上缓存项的

我有一个使用Hibernate持久性库的Java应用程序,它有大约100个映射类。为了尝试二级缓存,我在5个映射类中添加了@Cacheable。这导致标准计算任务花费的时间是以前的两倍,尽管缓存项上有几处命中(如Couchbase缓存监控控制台上所示)。由于Couchbase统计数据的瞬时性,我无法得到准确的平均命中率,但我估计只有10-20%左右

为某些实体启用缓存是否会影响其他未标记为@Cacheable的实体的访问时间,从而导致性能下降? 或者,这仅仅是由于缓存查询的延迟增加,加上缓存项的命中率较低所致


我正在使用Hibernate3.3。我已禁用查询缓存。我使用Memcached和GemFire获得了与缓存提供程序类似的结果。

好吧,我想这取决于缓存提供程序如何查看条目是否被缓存。如果这是一个昂贵的操作,那么如果缓存命中率较低,则从数据库检索数据的成本将很高。一般来说,缓存提供商应该努力使其尽可能便宜。例如,在Infinispan的情况下,这是一个简单的内存检查,以查看实体是否已缓存,如果未缓存,则通过Hibernate从数据库检索条目,Infinispan缓存提供程序使用一个非常高效的put操作将其放入缓存,该操作名为

您应该真正尝试Infinispan缓存提供程序。更多信息请访问。如果您在JBossAS7中运行,请阅读


免责声明:我是Infinispan开发人员。

没有答案?如果有人有模糊的线索,或者回答这个问题需要其他信息,请告诉我。我不能使用Infinispan缓存提供程序-我想使用读写并发策略。