我自己花了半天时间对Hazelcast和ehcache做了下对比,并进行了简单的性能测试:
4线程发送、4线程接收处理,发送和接收分别在不同的机器上,局域网内10/100M网络,集群异步缓存共享模式下保存400,000个map共享数据。
Hazelcast:用时20秒,TPS:20,000
Ehcache:用时8秒,TPS:50,000
结果明显是ehcache要快一些。
两者缓存共享的机制:
hazelcast是通过建立独立的TCP通道,将数据通过Binary的方式进行缓存的复制。ehcache是通过建立RMI共享通道(其实底层也是TCPSocket)处理缓存数据的复制。Hazelcast支持多种缓存共享模型,支持的功能更多。ehcache相对来说功能单一点,更加轻量级。
为什么ehcache更快?
通过查看源码,发现ehcache发送数据的时候会根据一定时间内队列中的数据量来进行传输,并发大的情况下一次性传输的数据包size更大,而Hazelcast是一个一个包的发送,增加了发送的频率,这样并发大的时候效率会受到一定的影响,但是更加灵活。就像我们拷贝文件,如果是拷贝压缩文件明显比拷贝一个文件夹(文件夹要迭代一个一个的拷贝)要快。所以ehcache并发大的情况下效率更高一些
任务占坑
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....