哪一个在Delphi COM对象的性能,早期绑定或后期绑定方面更好

时间:2013-06-29 18:15:49

标签: delphi com

在delphi中,如果要创建COM对象,可以通过两种方式完成,

第一个是早期绑定,例如,

uses
  MSScriptControl_TLB; // MS Script Control

var
  obj: IScriptControl;
begin
  obj := CreateOleObject('ScriptControl') as IScriptControl;
  .. 
  ..
  obj.ExecuteStatement('Msgbox 1') 
end;

或者,您可以按照以下(后期绑定)

进行操作
var
  obj: OleVariant;

begin
  obj := CreateOleObject('ScriptControl') ;
  obj.ExecuteStatement('Msgbox 1');
end;

哪一个在性能方面更好?

1 个答案:

答案 0 :(得分:11)

  

哪一个在性能方面更好?

早期约束比后期更快。后期绑定方法调度涉及以下内容:

  1. 从名称中查找入口点。
  2. 汇总要传递给方法的参数,并执行任何必要的类型转换。
  3. 调用该功能。
  4. 解组任何输出参数和返回值。
  5. 许多这些步骤根本不存在于早期绑定发送中。

    当然,如果函数执行任何重要操作,则在方法调度期间的性能可能无法检测到。