# 脚本性能

根据脚本的内容下面的函数可能会影响性能: SendMode, SetKeyDelay, SetMouseDelay, SetWinDelay, SetControlDelay 和 SetDefaultMouseSpeed.

## 内置性能特性

每个脚本在加载和语法检查的同时, 都会进行半编译. 除了能及早发现一些错误, 还能大大提升运行时的性能.

下面是优化过程(半编译) 的一些技术细节:

- Loop, block, IF, ELSE 和其他控制流语句在脚本中被赋予相关跳点的内存地址.
- 每个语句名都由跳转表中的地址代替.
- 每个表达式都被标记化并从 infix 转换为 postfix.
- 对变量或函数的每个引用都会被解析为一个内存地址, 除非它是动态的.
- 表达式中的原义整数被替换为二进制整数.
- 每一个 Goto 的目标都会被解析为一个内存地址, 除非它是一个变量.

此外, 在脚本执行过程中, 二进制数字被缓存在变量中, 以避免从字符串到/从字符串的转换.

dftg