Delphi

本类阅读TOP10

·游戏外挂设计技术探讨①
·如何使用Delphi设计强大的服务器程序
·分布式网络考试系统原型分析及实现
·用DLL方式封装MDI子窗体。
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·url编码与解码工具附代码
·工人线程中关闭窗体的实现
·hdsi2.0 sql注入部分抓包分析语句
·Borland Delphi 2005 下载

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Delphi多层开发方案比较

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

方案->
Midas
DCOM
COM+
ASTA
RemoteObject
.NET
提供者
Borland
微软
微软
微软
核心技术
COM
COM
COM
ASTA自己的,类同Midas,
但不依赖于COM
RemObjects自己的WebService技术,
不依赖于COM
WebService
开发工具
Delphi7
Delphi7
Delphi7
Delphi7
Delphi7
Visual Studio/Delphi8,9
与现有开发模式兼容程度
★★★★★
★★★★
★★★★
★★
(很不同的开发模式)
★★★★
(支持Delphi的Prvider/ClientDataSet)
部署容易程度
★★★
★★
★★★★
(集成server、不需要类似socket server、midas.dll的东西)
★★★★★
(集成server、不需要类似socket server、midas.dll的东西)
可伸缩性
★★★★
★★★★
★★★★★★
★★★★
★★★★★
(支持自带服务器,或者使用Apache/IIS等容器)
★★★★
性能(效率)
★★★
★★★★
★★★★
★★★★★
(二进制传输,支持压缩)
★★★★
(二进制传输,支持压缩)
★★
(文本的XML消息传输)
消息传输格式
二进制COM消息
二进制COM消息
二进制COM消息
二进制流
二进制流或文本的XML SOAP消息
XML SOAP消息
源程序
不全
购买价格
$0
$0
$0
$299 - $7,500
EUR 299
$0
与.NET集成
不可以
可以
可以
不可以
可以
(直接基于webservice并提供.NET客户端开发包,并可以使用二进制消息格式)
可以
中间件跨平台
有可能
不可能
不可能
有可能
可以
(支持Kylix开发,支持Apache做容器)
可能吧
总体评价
★★★
★★
★★★★
★★★★★
★★

速度与效率测试

测试项目 *
计算1000次1+1=2 *
传输10000条100字节记录 *
所花时间(ms) *
传输字节数 *
所花时间
传输字节数
Midas (Socket Connection)
26,047
366,000
2,359
1047,000
Midas (DCOM Connection)
812
933
2,047
1047,000
ADO直连数据库 (两层)    
297
1046,000
     
 
Asta 3 压缩    
1,578
1100,000
         
RemoteObject2 HTTP 二进制 压缩
8,641
791,000
2,515
1048,000
RemoteObject2 HTTP 二进制 不压缩
7,765
783,000
2,391
1049,000
RemoteObject2 HTTP SOAP
11,687
1935,000
3,110
1052,000
RemoteObject2 TCP 二进制 压缩
8,406
512,000
2,422
1049,000
RemoteObject2 TCP 二进制 不压缩
6,547
504,000
2,484
1563,000
RemoteObject2 TCP SOAP
11,281
1673,000
RemoteObject3 HTTP 二进制 压缩
11,625
504,000
RemoteObject3 HTTP 二进制 不压缩
10,593
501,000
RemoteObject3 HTTP SOAP
15,640
1108,000
RemoteObject3 TCP 二进制 压缩
11,172
512,000
RemoteObject3 TCP 二进制 不压缩
10,203
504,000
RemoteObject3 TCP SOAP
15,547
1712,000

结果分析:

  • 两层的效率当然是最高的;这样选择三层方案时就可以在伸缩性和性能之间做权衡,选择最优方案
  • DCOM针对本机运算可能做过优化,太快了,传输的字节数也太少了
  • Socket Connection的效率实在不敢恭维,比RemoteObject使用SOAP传输还低
  • RemoteObject使用二进制传输的效率大概是使用SOAP的2-3倍
  • RemoteObject使用二进制传输基本能达到甚至超过Socket Server的性能
  • RemoteObject的压缩好像没什么用
  • Asta性能比RemoteObject和Midas都高,但这个结果是设置了ADOQuery的CacheSize=1000时取得的,其它的测试都没有专门设置该属性


* 以上测试涉及文件都在附件中的测试包中;都是连接的本机(localhost);空白的是没有做测试的

* 传输字节数测量都是用的CommView 4.1 IP包检测捕获软件,监测“Loopback”(127.0.0.1)设备;CommView软件安装见测试包的tools目录;字节数包括实际传输的数据和IP握手信息等,如果大于10K,则只保留到千位,可能每次测量会有一点点区别。

* 测试所花时间时CommView停止捕获IP包,测试3次左右,取中间值

* 测试计算1000次1+1=2:
中间都是实现类似以下方法:
function Sum(a, b: Integer): Integer;
begin
Result := a + b;
end;

其中RemoteObject 2、3的测试程序直接用的它自带的MegaDemo例子,执行文件分别见测试包中的“1+1=2\RemObjects SDK 2”和“1+1=2\RemObjects SDK 3”目录,后者是试用版,运行前需要先允许Delphi(不知道还有没有其它限制),测试时都是设置的使用Indy;Midas和DCOM的测试是自己写的程序,源程序和执行文件测试包中的“midas”目录。




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有