【问题标题】:How can I compare the speed of the various caching frameworks?如何比较各种缓存框架的速度?
【发布时间】:2014-07-01 19:50:22
【问题描述】:

我希望比较以下缓存平台上突发数据的读取、写入和读取/写入速度:

  1. EhCache
  2. Redis
  3. 内存缓存
  4. 宝石之火
  5. JCS(Java 缓存系统)

我该怎么做?我如何利用 Spring 和/或 Hibernate 等平台来执行此操作?

【问题讨论】:

    标签: java spring hibernate caching


    【解决方案1】:

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

    长答案:您提到的产品非常不同。您可以在不同的使用场景中使用它们。例如。我大致分类如下:

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

    我忽略了 GemFire,因为我对此一无所知。

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

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

    【讨论】:

    • 仅限严格堆:Guava 等...对于小型项目(“普通用户”的桌面)可能很重要,无需配置等。因此没有文件系统、连接等路径。许多小型缓存项目都是非常快,但不能扩展到集群等。如果我记得 Chache2k 非常快
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 2010-09-23
      • 2015-05-25
      • 1970-01-01
      • 2011-06-23
      相关资源
      最近更新 更多