高性能计算-ICE 性能测试

介绍

      ICE(Internet Communication Engine),由ZeroC公司开发的一个中间件,是在CORBA的基础上进行演进而来,采用接口定义生成客户端和服务器端成根的方法来实现RPC通信,目前支持的语言有C++ Java PHP Ruby.NETPythonLicense方式有GPL和商业License两种,如果是在同一公司内部使用,不会分发给用户,因此可以免费使用(不知道理解是否正确?GPL

 

性能比较:

      开发一个简单的测试程序,如下:

      String hello(string word);

上面两个函数主要来测试各个不同实现下的性能,以及实现麻烦程度:

鉴于目前流行的框架,提供了HTTPHesssionICE三种不同实现,以及性能对比测试:

调用者的线程数分别从1个,2个,4个,8个,16个,32个和64个进行性能比较

硬件配置:

       10.2.226.710.2.226.92CPU(双核),相当于4核,内存4G,网卡100Mbs

       使用10.2.226.7作为服务器,10.2.226.9作为客户端

 

       Hello函数实现如下:

       String hello(string word){

       Return word;

       }

调用次数固定为1000000次,结果如下:

 

使用ICE(版本3.2.1)方式,服务器端使用C++开发,客户端使用C++

./clienticeperftest.exe -h 10.2.226.7  -n 1000000 -t Y

线程数

Hello(40字节)

Cost ms/server load

(client=java)

Hello(320字节)

Cost ms/server load

getUserInfo

cost ms/server load

1

289528

0.1

387403

0.1

 

 

2

141580

0.2

199543

0.1

 

 

4

77050

0.4

106616

0.2

 

 

8

43986

0.8

58410

0.8

 

 

16

26605(55586)

2

36965*

1.6

 

 

32

29003(57336)

1.4

36917*

1.7

 

 

64

37184

1.2

36921*

2

 

 

 

(*)到线程变成16个以上时,网络流量已经达到了100Mbs,就是说已经达到了网络带宽的极限

 

 

使用Hessian 开发,JBoss服务器,客户端使用Java开发,启用KeepAlive功能:

16个线程情况下,消耗时间为123490ms,但调用方的Load达到了惊人的12,服务器Load还好为2左右

 

使用Hessian测试结果表明:比C++ ICE5.5倍,Client Load提高10倍,不过性能也还可以,可以达到8000/秒的操作次数。

 

你可能感兴趣的:(高性能计算)