Vergleiche und Bedingungen
Bedingungen und Vergleiche können beschleunigt werden, indem man den Compiler durch eigene Überlegungen zum Programmablauf unterstützt. Bei AND bspw. muss der Compiler die angegebenen einzelnen Ausdrücke allesamt ausführen, damit er prüfen kann ob alle die geforderte Bedingung erfüllen. Dies deshalb, weil er keinen Überblick über die Programmlogik besitzt und nicht wissen kann ob der Programmierer in seiner Bedingung tatsächlich eine Bitverknüpfung vornimmt oder nur eine logische Abfrage.
Um den Compiler zu unterstützen kann man komplexere logische Bedingungen aufteilen. Dies erzeugt zwar möglicherweise etwas mehr Code, ist jedoch dann in der Ausführungsgeschwindigkeit wesentlich schneller.
Vorher
if a=1 and b=getByte() and (c or d) then [..] end if
Nachher
if a=1 then if b=getByte() then if c or d then [..] end if end if end if
Merfachvergleiche
Bei Mehrfachvergleichen mit Konstanten ist es schneller und effizienter, wenn man möglichst immer eine select-case-Fallabfrage nutzt.
Vorher
if a=1 or a=3 or a=200 or (a>=210 and a<=220) then [..] else [..] end if
Nachher
select case a case 1,3,200,210 to 220 [..] default [..] end select