W
wobudong
Unregistered / Unconfirmed
GUEST, unregistred user!
提议做个目前各类远程组件,真假三层组件等的大比拼,为我们的开发提供一个好的选择,支持的顶。还没来得及做,有人已经做了(发布者 bluebird2ccc):http://www.winu.cn/htmls/714/114/内容如下:---------------最近发现,国产delphi中间件越来越多,到处都是广告,都在说自己多好多好,本来这是件好事.有些人以此来与Asta,RemObjects,Midas等来对比,我感觉根本没的比,或许我的言论会让这些国产中间件的作者心理不平衡,稍安勿躁。你们都说是三层,请问,中间层可以扩展么,可以写逻辑么,不是较真,你们都没做到。只有QuickBurro可以支持该功能,这点很不错,只QuickBurro数据库功能不太人性化,不适合快速开发,希望其能在这方面改进。我已知的支持快速开发的国产中间件,不在列的大家可以补充(按我知道的时间先后顺序).1.DbAnyWhere 这个比较老了,,相信很多人都见过广告满天飞。基于ClientDataSet.2.MidAdo 广告做的也不错,现在在2ccc首页做广告。基于Ado.3.RemoteAdo 没怎么见广告,试用Midado过程中才知道。基于Ado.4.mateydb MateyDb需要RemObjects,MateyDb2封装了ClientDataSet.5.GreaterWare 一个新产品,基于什么技术没搞清楚,只知道支持Ado,bde,dbx.本文只挑选了与Ado兼容比较好的中间件来做测试。1.MidAdohttp://www.midado.cn版本:Release 2.4.3.0(2009.03.30)2.RemoteAdohttp://sites.google.com/site/remoteado版本:V 2.2.0.0(2009.04.21)3.GreaterWarehttp://www.greaterware.cn版本:Ver 1.0 Release(2009.4.18)测试环境.数据库:MSSQL2000,开发工具elphi7,操作系统:WindowXp, 商品资料表记录为8562条。耗时算法采用机器内部计时器的时钟频率,精度很高。测试程序源码和数据样本(ChaoShi.bak为MSSQL数据备份文件)可下载亲自测试,组件及服务端请从各自网站下载。本文意在指出各产品的不足,希望国产中间件更好的发展,仅代表个人意见,如果有对各位作者的得罪之处,深表歉意。测试指标:1.查询速度(20次不间断查询)--------MidAdo RemoteAdo GreaterWare第1次,耗时:372ms 第1次,耗时:183ms 第1次,耗时:180ms 第2次,耗时:221ms 第2次,耗时:161ms 第2次,耗时:87ms 第3次,耗时:217ms 第3次,耗时:159ms 第3次,耗时:86ms 第4次,耗时:221ms 第4次,耗时:163ms 第4次,耗时:84ms 第5次,耗时:219ms 第5次,耗时:165ms 第5次,耗时:85ms 第6次,耗时:219ms 第6次,耗时:166ms 第6次,耗时:85ms 第7次,耗时:217ms 第7次,耗时:166ms 第7次,耗时:84ms 第8次,耗时:219ms 第8次,耗时:162ms 第8次,耗时:84ms 第9次,耗时:220ms 第9次,耗时:163ms 第9次,耗时:84ms 第10次,耗时:219ms 第10次,耗时:158ms 第10次,耗时:86ms 第11次,耗时:217ms 第11次,耗时:157ms 第11次,耗时:85ms 第12次,耗时:219ms 第12次,耗时:166ms 第12次,耗时:85ms 第13次,耗时:219ms 第13次,耗时:162ms 第13次,耗时:84ms 第14次,耗时:221ms 第14次,耗时:157ms 第14次,耗时:85ms 第15次,耗时:221ms 第15次,耗时:160ms 第15次,耗时:87ms 第16次,耗时:218ms 第16次,耗时:161ms 第16次,耗时:85ms 第17次,耗时:218ms 第17次,耗时:166ms 第17次,耗时:85ms 第18次,耗时:218ms 第18次,耗时:159ms 第18次,耗时:85ms 第19次,耗时:221ms 第19次,耗时:159ms 第19次,耗时:84ms 第20次,耗时:216ms 第20次,耗时:157ms 第20次,耗时:85ms --------评析:查询速度来说GreaterWare速度最快,RemoteAdo次之,MidAdo表现不太理想。2.单条记录修改速度(20次不间断修改)--------MidAdo RemoteAdo GreaterWare第1次,耗时:309ms 第1次,耗时:227ms 第1次,耗时:6ms 第2次,耗时:311ms 第2次,耗时:201ms 第2次,耗时:5ms 第3次,耗时:309ms 第3次,耗时:194ms 第3次,耗时:6ms 第4次,耗时:313ms 第4次,耗时:196ms 第4次,耗时:6ms 第5次,耗时:316ms 第5次,耗时:199ms 第5次,耗时:5ms 第6次,耗时:317ms 第6次,耗时:205ms 第6次,耗时:5ms 第7次,耗时:311ms 第7次,耗时:191ms 第7次,耗时:5ms 第8次,耗时:316ms 第8次,耗时:206ms 第8次,耗时:5ms 第9次,耗时:314ms 第9次,耗时:201ms 第9次,耗时:5ms 第10次,耗时:313ms 第10次,耗时:197ms 第10次,耗时:5ms 第11次,耗时:312ms 第11次,耗时:197ms 第11次,耗时:5ms 第12次,耗时:319ms 第12次,耗时:197ms 第12次,耗时:5ms 第13次,耗时:314ms 第13次,耗时:190ms 第13次,耗时:5ms 第14次,耗时:311ms 第14次,耗时:195ms 第14次,耗时:6ms 第15次,耗时:309ms 第15次,耗时:197ms 第15次,耗时:5ms 第16次,耗时:316ms 第16次,耗时:190ms 第16次,耗时:5ms 第17次,耗时:313ms 第17次,耗时:190ms 第17次,耗时:5ms 第18次,耗时:311ms 第18次,耗时:189ms 第18次,耗时:5ms 第19次,耗时:310ms 第19次,耗时:190ms 第19次,耗时:5ms 第20次,耗时:312ms 第20次,耗时:190ms 第20次,耗时:5ms --------评析:修改速度来说,GreaterWare这方面优势非常明显(几乎不可思议),RemoteAdo次之,MidAdo表现不太理想。3.容错,断线恢复.(测试步骤:查询出数据后,将服务端停掉,修改DbGrid中的数据,提交)MidAdo: 提示 /"Socket Error #10051/",提示关闭后,当前的记录被修改,变为浏览模式(很费解,怎么恢复记录和再次提交呢),再次启动服务器,移动记录无任何提交反映,当前记录亦无法恢复。RemoteAdo:提示 /"Could not connect to RemoteAdoServer/",提示关闭后,当前记录仍然为Edit模式,再次启动服务器,移动记录进行提交,提交成功。GreaterWare:提示 /"网络发生故障或服务器关闭,请等待恢复后再进行操作。/",提示关闭后,当前记录仍然为Edit模式,再次启动服务器,移动记录进行提交,提交成功。----评析:这方面MidAdo做的差一些,不知道是何原因,RemoteAdo和GreaterWare均表现良好。4.改造难度MidAdo:需要替换连接组件,Query等数据操作控件RemoteAdo:需要替换连接组件,Query等数据操作控件GreaterWare:替换连接组件.----评析:改造难度来说,GreaterWare最容易,而且最省工.MidAdo和RemoteAdo来说,差不多,MidAdo要好一点,因为RemoteAdo没有提供Table组件。5.内存,CPU消耗MidAdo: 20次不间断查询服务端(madosvc.exe)占用CPU峰值30%,内存占用11.628MRemoteAdo:20次不间断查询服务端(RemoteAdoServer.exe)占用CPU峰值32%,内存占用 11.156MGreaterWare:20次不间断查询服务端(GreaterWareServer.exe)占用CPU峰值16%,内存占用 8.116M----评析:MidAdo和RemoteAdo接近,GreaterWare内存和CPU消耗很低。6.数据库支持MidAdo: 支持各种数据库RemoteAdo:支持各种数据库GreaterWare:只支持网络数据库,Access等桌面数据库无能力为。----评析:MidAdo和RemoteAdo表现良好,GreaterWare这方面表现不好。后记:测试结果让我非常意外,原因在于一直以为MidAdo一定胜出,而事实确证明了它在各方面都还需要很大的提高。看来选用中间件还真是需要谨慎,看完广告,回家自己做个测试。同时,希望本文可以让各中间件作者可以看到自己的不足,借鉴对方的长处,来不断的提高和完善自己的产品,这才是我想看到的。