2012-12-18 72 views
12

我想确定这两个在我的项目中使用哪一个:番石榴缓存或ehcache。寻找轻量级服务级别缓存解决方案。 我搜索了一些基准,但找不到任何。番石榴缓存与ehcache基准

如果你有一个基准方便,请张贴在这里。

干杯。

回答

20

标杆管理是一项轻松的业务。它是hard to get it righteasy to fake。除非你的应用程序会挤出每个CPU周期,否则你不应该担心性能:Ehcache和番石榴缓存都足够用于平均项目。

应该要注意的是API和功能。例如,Guava缓存不能用作第二级Hibernate缓存(即至少开箱即用)。 OTOH Ehcache在API和爬行功能方面已经有点胖了,但这些都是主观的。

即将回到主题,番石榴缓存最初是从一个单独的项目,concurrentlinkedhashmap这,我相信, 不再支持这样 拉只是一个人的项目,失去了一点势头(见注释在这篇文章下面)。尽管如此,旧项目页仍然有一些基准证明ConcurrentHashMap(现在的番石卡Cache)性能接近ConcurrentLinkedHashMap。我希望它不会恶化。

+11

我仍然支持CLHM,但它是一个单人项目。 CLHM有更好的算法基础和更多的用户,但由于更多的功能和专门的团队,番石榴更适合常见的情况。由于支持严格的LRU来安抚迁移的单元测试(抱怨非严格是一个错误),但是由于被谷歌打上品牌,Guava的缓存并不严格但是值得信赖。尽管有这样的惩罚,但我最后一次以CLHM为基准的速度几乎比Guava快。所有都是很好的选择。 –

+0

Guava已经出现在我的项目中,所以我只是使用它的缓存支持。如果项目的必需品会增长,我会考虑其他库。 – Raul

+3

为了将来参考,请参阅这些[JMH基准](https://github.com/ben-manes/caffeine/wiki/Benchmarks)以进行比较。 –