delphi - Tdws单位性能

标签 delphi dwscript

在 TdwsUnit 中注册函数会产生与常规魔术函数(例如在 dwsMathComplexFunctions.pas 单元中注册的函数)相同的性能吗?

最佳答案

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

  • 调用参数被评估并压入堆栈
  • TProgramInfo/IInfo 上下文是可访问的,因此您可以轻松地按名称访问变量,并可以轻松地调用脚本中的其他所有内容
  • 您的执行受到异常框架的保护

相比之下,魔术函数什么也得不到:它们只是得到参数表达式的列表,仅此而已。没有堆栈上下文,无法轻松访问其他任何内容,因此由您来评估参数并处理所有内容。这使得它们更适合需要快速完成的简单任务。

请注意,除了 OnEval 之外,TdwsUnit 中的一些函数现在逐渐获取 OnFastEval 事件,这是声明魔术函数的另一种方法。

关于delphi - Tdws单位性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15643543/

相关文章:

delphi - 如何读取具有不同分隔符的ParamEter值?

德尔福网页脚本: How to call a Script Function from Delphi Code within an Execution Context?

delphi - 帮助将最新的 Delphi Web Script (DWS) 与 SynEdit 集成

web-services - Indy IdHTTPServer GET 响应参数随机丢失

multithreading - 线程更新 GUI

C# 调用返回结构内结构的 Delphi DLL

delphi - TreeView:如何确定节点是否处于编辑模式?

delphi - 如何查找调用 TdwsGlobal.onReadVar/OnWriteVar 事件的变量

delphi - DW脚本安装

delphi - 有没有办法在执行 DWScript 两次时保留变量值?