脚本性能
每个脚本在它被载入以及语法检查时都是半编译的。这样做除了会减少脚本消耗的内存外,也会极大地提高运行时的性能。
除了 SetBatchLines,根据脚本的内容,下列命令同样会影响到性能: SendMode, SetKeyDelay, SetMouseDelay, SetWinDelay, SetControlDelay
和 SetDefaultMouseSpeed。
下面是优化过程的技术细节(半编译):
- 输入输出变量(当不含其它变量的引用时)以及 group
名称被解析为内存地址。
- Loops, blocks, IFs
和 ELSEs 会给出它们在脚本内相关的跳转点的内存地址。
- 每个 Hotkey, Gosub
和 Goto 的终点被解析为一个内存地址,除非它是个变量。
- 在一个跳转列表里,每个命令名称都被替换成一个地址。
- 每一行都被预解析成一个参数列表。
- 每个参数和 表达式 都被预解析为一个 变量
和 函数 的列表(如果有的话)。
- 每个变量或函数的引用都被解析为一个内存地址。
翻译:
hong 修正:天堂之门 menk33@163.com 2008年9月24日