gpt4 book ai didi

delphi - Delphi COM 对象中的早期绑定(bind)和后期绑定(bind)在性能方面哪个更好

转载 作者:行者123 更新时间:2023-12-03 14:57:50 24 4
gpt4 key购买 nike

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

第一个是早期绑定(bind),例如

uses
MSScriptControl_TLB; // MS Script Control

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

或者,您可以按照以下方式进行(后期绑定(bind))

var
obj: OleVariant;

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

哪一个在性能方面更好?

最佳答案

Which one is better in terms of performance?

早类比晚类快。后期绑定(bind)方法调度涉及以下内容:

  1. 从名称查找入口点。
  2. 组装要传递给方法的参数,并执行任何必要的类型转换。
  3. 调用函数。
  4. 解码任何输出参数和返回值。

对于早期绑定(bind)调度来说,其中许多步骤根本不存在。

当然,如果该函数做了任何重要的事情,则方法分派(dispatch)期间的性能差异很可能无法检测到。

关于delphi - Delphi COM 对象中的早期绑定(bind)和后期绑定(bind)在性能方面哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com