Skriptperformanz
Um die Performanz zu maximieren, vermeiden Sie die Verwendung von SetFormat (außer im schnellen Modus) und fügen Sie die folgenden Zeilen am Anfang des Skripts ein:
#NoEnv
SetBatchLines -1
ListLines Off
Außerdem können die folgenden Befehle je nach Art des Skripts die Performanz beeinträchtigen: SendMode, SetKeyDelay, SetMouseDelay, SetWinDelay, SetControlDelay und SetDefaultMouseSpeed.
Jedes Skript wird beim Laden semikompiliert und auf seine Syntax überprüft. Dadurch wird nicht nur der Speicherverbrauch des Skripts reduziert, sondern auch die Laufzeitperformanz deutlich verbessert.
Hier die technischen Details des Optimierungsprozesses (Semikompilierung):
- Ein- und Ausgabevariablen (sofern deren Namen keine Referenzen zu anderen Variablen enthalten) und Gruppennamen werden in Speicheradressen aufgelöst.
- Schleifen, Blöcke, IFs (Ausdruck), IFs (Legacy) und ELSEs bekommen die Speicheradressen von ihren Sprungpunkten im Skript zugewiesen.
- Das Ziel von Hotkey, Gosub und Goto wird in eine Speicheradresse aufgelöst, es sei denn, es handelt sich um eine Variable.
- Jeder Befehlsname wird mit einer Adresse aus der Sprungtabelle ersetzt.
- Jede Zeile wird vorab in eine Liste von Parametern und jeder Parameter wird vorab in eine Liste von Variablen (falls vorhanden) aufgeteilt.
- Jeder Ausdruck wird tokenisiert und von Infix in Postfix konvertiert.
- Jede Referenz zu einer Variable oder Funktion wird in eine Speicheradresse aufgelöst.
- Direkt geschriebene Integer in Ausdrücken und Mathematik-/Vergleichsbefehlen werden mit binären Integern ersetzt.
Während der Skriptausführung werden Binärzahlen in Variablen zwischengespeichert, um Konvertierungen von/zu Zeichenketten zu vermeiden. Einzelheiten finden Sie unter SetFormat.