此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

    您的位置:首页 >> 企业博客
企业博客

国产delphi数据库中间件分析

  发表于2009-05-13 15:05     阅读:10767   评论:36  

 
最近发现,国产delphi中间件越来越多,到处都是广告,都在说自己多好多好,本来这是件好事.有些人以此来与Asta,RemObjectsMidas等来对比,我感觉根本没的比,或许我的言论会让这些国产中间件的作者心理不平衡,稍安勿躁。你们都说是三层,请问,中间层可以扩展么,可以写逻辑么,不是较真,你们都没做到。只有QuickBurro可以支持该功能,这点很不错,只QuickBurro数据库功能不太人性化,不适合快速开发,希望其能在这方面改进。
我已知的支持快速开发的国产中间件,不在列的大家可以补充(按我知道的时间先后顺序)
1.DbAnyWhere 这个比较老了,,相信很多人都见过广告满天飞。基于ClientDataSet
2.MidAdo 广告做的也不错,现在在2ccc首页做广告。基于Ado
3.RemoteAdo 没怎么见广告,试用Midado过程中才知道。基于Ado
4.mateydb MateyDb需要RemObjectsMateyDb2封装了ClientDataSet
5.GreaterWare 一个新产品,基于什么技术没搞清楚,只知道支持Ado,bde,dbx
 
本文只挑选了与Ado兼容比较好的中间件来做测试。
1.MidAdo
http://www.midado.cn
版本:Release 2.4.3.0(2009.03.30)
2.RemoteAdo
http://sites.google.com/site/remoteado
版本:V 2.2.0.0(2009.04.21)
3.GreaterWare
http://www.greaterware.cn
版本:Ver 1.0 Release(2009.4.18)
测试环境。
数据库:MSSQL2000,开发工具:Delphi7,操作系统:WindowXp, 商品资料表记录为8562条。
耗时算法采用机器内部计时器的时钟频率,精度很高。
测试程序源码和数据样本(ChaoShi.bakMSSQL数据备份文件)可下载亲自测试,组件及服务端请从各自网站下载。
本文意在指出各产品的不足,希望国产中间件更好的发展,仅代表个人意见,如果有对各位作者的得罪之处,深表歉意。
测试指标:
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做的差一些,不知道是何原因,RemoteAdoGreaterWare均表现良好。
4.改造难度
MidAdo:需要替换连接组件,Query等数据操作控件
RemoteAdo:需要替换连接组件,Query等数据操作控件
GreaterWare:替换连接组件.
评析:改造难度来说,GreaterWare最容易,而且最省工.MidAdoRemoteAdo来说,差不多,MidAdo要好一点,因为RemoteAdo没有提供Table组件。
5.内存,CPU消耗
MidAdo: 20次不间断查询服务端(madosvc.exe)占用CPU峰值30%,内存占用11.628M
RemoteAdo:20次不间断查询服务端(RemoteAdoServer.exe)占用CPU峰值32%,内存占用 11.156M
GreaterWare:20次不间断查询服务端(GreaterWareServer.exe)占用CPU峰值文章评论 (36)

发表评论

姓名:  

输入验证码:   如果看不清楚验证码,可以点击更换新的验证码。