# 脚本性能

每个脚本在它被载入以及语法检查时都是半编译的。这样做除了会减少脚本消耗的内存外，也会极大地提高运行时的性能。

除了 SetBatchLines,根据脚本的内容，下列命令同样会影响到性能: SendMode, SetKeyDelay, SetMouseDelay, SetWinDelay, SetControlDelay 和 SetDefaultMouseSpeed。

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

- 输入输出变量(当不含其它变量的引用时)以及 group 名称被解析为内存地址。
- Loops, blocks, IFs 和 ELSEs 会给出它们在脚本内相关的跳转点的内存地址。
- 每个 Hotkey, Gosub 和 Goto 的终点被解析为一个内存地址，除非它是个变量。
- 在一个跳转列表里，每个命令名称都被替换成一个地址。
- 每一行都被预解析成一个参数列表。
- 每个参数和 表达式 都被预解析为一个 变量 和 函数 的列表(如果有的话)。
- 每个变量或函数的引用都被解析为一个内存地址。

翻译: hong 修正：天堂之门 menk33@163.com 2008年9月24日