hibernate二级缓存很慢

问题描述 投票:2回答:2

我正在使用内存ehcache的hibernate二级缓存,而且速度很慢。我的意思是,不比SQL慢,但是在SSD上使用快速数据库时也不会更快。实际的速度增加不到2倍,有时甚至不明显。

似乎其他人有同样的问题,但没有得到答案:http://forum.spring.io/forum/spring-projects/data/44353-hibernate-second-level-caching-slow-no-really-slow https://forum.hibernate.org/viewtopic.php?t=985913

在进行一些分析之后,似乎hibernate总是对缓存元素进行去除/重新水合,而不是直接存储它们,这导致了这种糟糕的性能(与直接使用ehcache相比,超过100倍)。

所以,我的问题是:

  • 可以直接hibernate存储和恢复缓存的对象吗?
  • 有没有其他方法来加速二级缓存?
  • 是否有一个相对简单的替代机制来加快hibernate缓存?
java performance hibernate caching hibernate-4.x
2个回答
2
投票

可以直接hibernate存储和恢复缓存的对象吗?

不,它不能,因为这意味着并发会话将使用相同的对象实例,从而踩到彼此的脚趾。

有没有其他方法来加速二级缓存?

可能有数千种方法可以加快速度。其中大多数取决于您的应用程序的特定要求。

是否有一个相对简单的替代机制来加快hibernate缓存?

不,至少目前不是。


0
投票

你有没有弄清楚Hibernate的二级缓存性能问题?在某些应用程序中,diskPersistence和overFlowToDisk已经开启并注意到TRACE日志中的克隆/序列化/反序列化。不明白为什么Hibernate / Ehcache必须再次克隆/反序列化本地JVM对象。

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