Skriptperformanz
Die folgenden Funktionen können 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. Dies hilft dem Programm, einige Fehler frühzeitig zu erkennen, und sorgt für eine deutliche Verbesserung der Laufzeitperformanz.
Hier einige technische Details des Optimierungsprozesses (Semikompilierung):
- Schleifen, Blöcke, IFs, ELSEs und andere Kontrollanweisungen bekommen die Speicheradressen von ihren Sprungpunkten im Skript zugewiesen.
- Jeder Anweisungsname wird mit einer Adresse aus der Sprungtabelle ersetzt.
- Jeder Ausdruck wird tokenisiert und von Infix in Postfix konvertiert.
- Jede Referenz zu einer Variable oder Funktion wird in eine Speicheradresse aufgelöst, sofern sie nicht dynamisch ist.
- Direkt geschriebene Integer in Ausdrücken werden mit binären Integern ersetzt.
- Das Ziel von Goto wird in eine Speicheradresse aufgelöst, es sei denn, es handelt sich um eine Variable.
Während der Skriptausführung werden Binärzahlen in Variablen zwischengespeichert, um Konvertierungen von/zu Zeichenketten zu vermeiden.