Delphi TdwsUnit性能

Delphi TdwsUnit性能,delphi,dwscript,Delphi,Dwscript,在TdwsUnit中注册函数是否会产生与常规魔法函数(如在dwsMathComplexFunctions.pasunit中注册的函数)相同的性能?通常不会,因为TdwsUnit函数和方法的OnEval事件得到完全舒适和安全的处理: 调用参数被计算并推送到堆栈上 TProgramInfo/IInfo上下文是可访问的,因此您可以通过名称轻松地访问变量,进而可以轻松地调用脚本中的所有其他内容 您的执行受到异常帧的保护 相比之下,魔术函数没有得到这些:它们只得到参数的表达式列表,仅此而已。没有堆栈上

在TdwsUnit中注册函数是否会产生与常规魔法函数(如在
dwsMathComplexFunctions.pas
unit中注册的函数)相同的性能?

通常不会,因为TdwsUnit函数和方法的OnEval事件得到完全舒适和安全的处理:

  • 调用参数被计算并推送到堆栈上
  • TProgramInfo/IInfo上下文是可访问的,因此您可以通过名称轻松地访问变量,进而可以轻松地调用脚本中的所有其他内容
  • 您的执行受到异常帧的保护
相比之下,魔术函数没有得到这些:它们只得到参数的表达式列表,仅此而已。没有堆栈上下文,无法轻松访问任何其他内容,因此由您来评估参数并处理所有内容。这使它们更适合于需要快速完成的简单任务


请注意,除了OnEval之外,TdwsUnit中的某些函数现在还将以增量方式获得OnFastEval事件,这是声明神奇函数的另一种方式。

什么是TdwsUnit?它是第三方图书馆吗?如果是,请咨询图书馆供应商。我认为你的问题不属于这里。@RawN TdwsUnit是DWScript中的一个组件/类library@RawN如果关于第三方图书馆的每一个问题都遭到反对,那么这将是一个孤独而乏味的地方。@RawN图书馆是免费的、开源的+Eric维护它并在这里活动,因此,这是一个寻找相关信息或询问相关问题的绝佳地点。这样,每个人都可以从答案中受益。我的坏。我被纠正了。