Ice与CORBA的差异- -| 回首页 | 2005年索引 | - -共享与竞争

Ice和CORBA的性能比较(第一部分)- -

                                      

Ice和CORBA的性能比较(第一部分)

简介

Ice是一个高效的中间件平台。它在潜伏时延和数据传输方面都有着极其优秀的性能。此外,Ice提供了一些有用的特性,使其能比其他中间件,例如CORBA,更快的技术,这些特性的具体例子有批量单向调用、高效的时件分发和低速链路数据压缩。

我们将Ice和TAO进行了广泛的性能比较。TAO是现在应用最广的ORB,大多数的人都认为它是众多可用的CORBA实现中速度最快的。

测试的类型

Ice和CORBA的性能差异可以分为实现质量的性能差异和内在的优秀设计导致的性能差异两类。

实现质量的差异适合测试中间件之间相同或至少很相似的某个功能的性能。例如潜伏时延测试就是属于这类测试,因为对于各自的平台,很多应用广泛的功能是相同的。内在设计的差异适合测试一个平台提供了的,而另外一个平台没有相应等价物的特性。例如在低速连接上的吞吐量的测试就是这样的测试,因为CORBA没有提供数据压缩功能。

对于第一类的测试,我们尽可能做到公平,也就是,我们使用相同的硬件,用相同的编译选项编译TAO和Ice,使用相同的并发模型来测试比较。具体的测试配置可见下文的“测试设置”。

对于第二类测试,由于Ice本身的设计而获得的性能优势,因为CORBA的ORB没有简单的方法提供等价的设计,因此这样的测试最好看作是体系或设计上的差异,而不是编程实现质量上的差异。

测试设置

为了公平测试,我们使用了Ice和TAO各自非beta的最新版本,Ice是2.1.0版,TAO是1.4版。我们在linux和windows xp下进行了测试,两种情况下用的都是Dell Dimension 4500,cpu是2.4Ghz的Pentium 4,超线程技术不打开,内存是512MB。

Linux上的测试,我们用Fedora Core 3和Gcc 3.3.5编译器(TAO 1.4不支持GNU C++ 3.4版)。我们的测试源代码用-O3 -DNDEBUG -D_REENTRANT编译选项来编译。Windows xp上的测试,我们使用了Windows XP Home edition with Service Pack 2,并使用Visual C++ 6.0 with Service Pack 5版编译,代码用/O2 /DNDEBUG选项来编译。

为了提高结果的可比较性,很重要的一点是使用等价的并发模型。我们使用了线程池模型,因为这是最常用的多线程编程模型。我们为Ice和TAO配置了4个工作线程。

TAO的配置文件svc.conf里面设置是这样的:

static Client_Strategy_Factory "-ORBClientConnectionHandler MT"

Ice配置为:

Ice.ThreadPool.Server.Size=4
Ice.ThreadPool.Server.SizeMax=4

在单向调用测试上,我们使用了TAO的SYNC_WITH_TRANSPORT,它提供和Ice单向调用相同的服务质量。除了上面的那些设置,我们使用loopback网络接口,客户程序和服务器程序运行在同一台机器上。

所有测试的结果都表示成每个请求的耗时,也就是值越小,性能越好(另一种方法是测试每秒处理完请求数)。我们每个测试都运行N次,使用最好的N/2的结果的平均值,另外的N/2的差的结果被丢弃,这种方法避免了因操作系统的其他活动而影响了测试程序的运行而导致的性能测量误差。

性能的差值被计算为(TAO耗时-Ice耗时)/Ice耗时,用百分比表示。例如50%的差值表示Ice的速度是TAO的1.5倍。

性能测试指数

我们进行了下面的测试:

1、潜伏时延测试  2、吞吐量测试  3、低速连接性能测试  4、时间分发性能测试

性能小结

下面的表格列出了所有的性能测试比较结果:

正如数据所显示,Ice在除了一项的所有其他测试上都获得了性能的得益。很多的性能得益是因为Ice的实现质量,也有一些反映了Ice和CORBA基本设计的不同。后续的几篇文章将对各个性能测试的详细情况作描述。

测试大项目测试子项linux下的速度差别WindowsXP下的差别
潜伏时延双向调用145%77%
双向AMI调用220%136%
单向调用322%83%
批量单向调用1609%368%
吞吐量字节序列-9%-39%
结构序列23%78%
低速链路文档传输138%138%
结构体传输341%341%
事件分发潜伏时延271%N/A
无缓冲吞吐量302%N/A
缓冲的吞吐量588%N/A

- 作者: gigaboy 访问统计: 2005年07月4日, 星期一 12:38 加入博采

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2160870

博客手拉手

[2005-07-04]    书评〈要定你,言承旭〉

[2005-07-04]    古典爱情(作者:白毛女)

[2005-07-04]    男人都是这副德性

[2005-07-04]    ***面条与包子的笑话经典四十二则***

[2005-07-04]    人类探测器今下午首撞彗星 互联网同步转播

回复

- 评论人:龙舌兰与小鸟

Sat Jul 09 15:04:03 CST 2005  作者Blog

最近好不好,总不见的

评论内容: