hprose / hprose-java

Hprose is a cross-language RPC. This project is Hprose 2.0 for Java
MIT License
550 stars 187 forks source link

hprose-Java 远程调用性能不知道是快还是慢? #16

Closed henrypfhu closed 8 years ago

henrypfhu commented 8 years ago

在ThinkPadW540 8Core超线程 32G内存机器上,测试hprose.tcphelloexam.TCPHelloServerh和对应的hprose.tcphelloexam.TCPHelloClient,最终测试结果与下基本类似: C:\Java\jdk8\bin\java ..... START 136167 END

耗时基本在130秒左右

从代码TCPHelloClient中,可以看出是20个客户端线程,每个线程调用hello后台服务30万次,共计600万次

也就是hprose-java针对最简单的hellow字符串调用,在以上配置的机器上只能跑4.4万笔/秒

不知道这个性能是快还是慢?

andot commented 8 years ago

主要瓶颈在客户端,而不是服务器端,如果你把客户端和服务器端分开测试,你会发现服务器端可以支撑更多的并发调用。

另外,Hprose for Java 的服务器端目前支持全双工套接字(Socket)绑定,但是客户端还不支持。需要把客户端也改成 NIO 实现才行,我改写了,但是有死锁问题,而且没发现该怎么解决,所以修改的客户端的代码没有提交到 github 上。

henrypfhu commented 8 years ago

总体性能很不错,希望@andot能坚持把Hprose开源项目做下去! 大大的赞一个!

andot commented 8 years ago

Hprose for Java 2.0 已经支持全双工套接字(Socket)绑定的客户端了,可以达到 8w/秒。