java memcached lib 性能测试

这两天有时间,研究了一下最近火的发烫的 memcached.

java 有两个类库,Api 都很简单。

看了看介绍,先试用了 http://bleu.west.spy.net/~dustin/projects/memcached/

但是测试之下发现客户端的 CPU 占用接近 100%,而服务器端 cpu 基本上是 0 。对于比较复杂的对象每秒只能完成 1400 个左右的 get.

看来 memcached 的确是很棒的产品。但是客户端会是很大的瓶颈。

于是开始测试另外一个库,http://www.whalin.com/memcached/

结果测试结果更加令人失望,速度只是第一个的 60-70%。

难道是所有的客户端都会这么慢?所以我试了一下 perl 的库,发现 perl 的库速度很令人满意。所以应该是 java 的客户端库的问题。

但是这么很好很强大的的 memcached  又不能不用,所以打算改进一下 java 库。

开始的时候打算改进 spy 库,但是他有一个 spy.jar 不是开放源码的。而且他的对应的代码写的太复杂了,有一些过度设计了。这很不符合我追求的简单原则。

简单看了下 whalin 的源代码,发现有许多方面可以改进。于是花了点时间改进了几个比较严重影响性能的地方。经过测试,性能居然超过了 spy 包。

不错,应该可以在产品环境使用了,由于时间有限,暂时不进行更多的改进工作了。等到它成为性能瓶颈的时候再进一步的进行优化吧。估计应该有 20-150% 的优化空间。

BTW:网上有人说 Hessian 的串行化性能比 Java 的好,经过测试,发现 Serialize Java is 3 times faster. deserialize Hessian is 10% faster. Wired.

你可能感兴趣的:(java,thread,应用服务器,memcached,perl)