ice和java socket性能对比。

做了简单的性能测试对比,传递的都是4个英文字符。ice也是采用java调用的。

jdk8 x64位,编译等级1.7,本机windows 64位,4核4g内存测试。

Google Protocol Buffer版本2.5; ice采用windows 32位,3.5.1版。

代码没有做过多的优化,连接的时间没有计算。

只测试了速度方面的,没有测试传输的包大小,没有做跨网络的测试。

java直接socket调用 TCP 调用100000次耗时: 4264 毫秒。 TCP 调用100000次耗时: 4093 毫秒。 TCP 调用100000次耗时: 3896 毫秒。 TCP 调用100000次耗时: 3904 毫秒。 第一种方法 ICE 调用100000次耗时: 6172 毫秒。 ICE 调用100000次耗时: 5987 毫秒。 ICE 调用100000次耗时: 5782 毫秒。 ICE 调用100000次耗时: 5715 毫秒。 第二种方法 ICE 调用100000次耗时: 6376 毫秒。 ICE 调用100000次耗时: 6390 毫秒。 ICE 调用100000次耗时: 6561 毫秒。 ICE 调用100000次耗时: 6373 毫秒。 本地方法 本地调用100000次耗时: 0 毫秒。 本地调用100000次耗时: 1 毫秒。 本地调用100000次耗时: 0 毫秒。 本地调用100000次耗时: 0 毫秒。

项目源码位置:

http://download..net/detail/wzjin/8822651

结论:

1、还是原生的socket快;

2、如果很在意性能和对系统的掌控,建议还是采用原生的好。

经验分享 程序员 微信小程序 职场和发展