如何比较各种缓存框架的速度?

时间:2014-06-30 11:01:43

标签: java spring hibernate caching

我希望在以下缓存平台上比较一组数据的读,写和读/写速度:

  1. ehcache的
  2. Redis的
  3. 分布式缓存
  4. 的GemFire
  5. JCS(Java缓存系统)
  6. 我该怎么办?我怎样才能使用像Spring和/或Hibernate这样的平台呢?

2 个答案:

答案 0 :(得分:1)

简短回答:只需实现一个示例应用程序并比较速度。

答案很长:你提到的产品非常不同。您可以在不同的使用场景中使用它们。例如。我粗略地将其分类如下:

  • 内部Java堆:JCS,EhCache
  • 关闭Java堆:MemCached
  • 分布式:Redis
  • 持久性:Redis

我遗漏了GemFire,因为我对此一无所知。

此外,您无法进行直接比较,因为API非常不同。对于redis和memcache,您使用rest接口。从理论上讲,应该可以为每个产品实现类似API的JSR107,这样您就可以对产品进行单一测试。但同样,这是毫无意义的,因为产品用于不同的目的。对于真正的解决方案,将redis和EhCache结合起来可能会更好。一种扩展和持久性解决方案,一种用于处理Java堆内Java对象的缓存部分的解决方案。

我已经对Java缓存进行了一些基准测试。但是它只覆盖内部堆部分,并且只运行单线程,因此需要扩展。有关cache2k benchmarks页面上的条目查看。基准代码在github上运行OOTB。如果您想为此做出贡献,我们非常欢迎您!

答案 1 :(得分:0)

我建议使用JMeter,您可以在其中创建一些作业来测试应用程序的功能并创建一些基准测试。 http://jmeter.apache.org/