Optimierung (Delphi)
Nach oben zu Liste der Delphi-Compiler-Direktiven - Index
Typ |
Option |
Syntax |
{$O+} oder {$O-} {$OPTIMIZATION ON} oder {$OPTIMIZATION OFF} |
Vorgabe |
{$O+} {$OPTIMIZATION ON} |
Bereich |
Lokal (ausgenommen Global für DCCIOSARM- und DCCIOSARM64-Compiler) |
Die Direktive $O steuert die Codeoptimierung. Im Status {$O+} führt der Compiler eine Anzahl von Codeoptimierungen durch, indem er beispielsweise Variablen in CPU-Registern platziert, doppelte Teilausdrücke eliminiert und Induktionsvariablen generiert. Im Status {$O-} werden diese Optimierungen nicht durchgeführt.
Außer in bestimmten Testsituationen sollte die Codeoptimierung immer aktiviert sein. Die Optimierungen des Delphi-Compilers führen zu keinerlei Änderungen der Funktionsweise des Programms. Der Compiler führt also keine "unsicheren" Optimierungen durch, die die besondere Aufmerksamkeit des Programmierers erfordern.
Hinweise:
- Mit der Direktive $O kann die Optimierung nur für eine ganze Prozedur oder Funktion ein- oder ausgeschaltet werden. Dies ist nicht für bestimmte Zeilen innerhalb einer Routine möglich.
- Bei iOS-Anwendungen für 32-Bit-iOS-Geräte (die also den DCCIOSARM-Compiler verwenden) und für iOS-Anwendungen für 64-Bit-iOS-Geräte (die also den DCCIOSARM64-Compiler verwenden)hat die Direktive $O einen globalen Gültigkeitsbereich. Der Compiler erzeugt keine Warnungen oder Hinweise, sondern bei der Optimierung wird die letzte Einstellung verwendet, wenn mehrere $O-Optionen in einer einzelnen Quellcodedatei vorhanden sind.
- Bei iOS-Anwendungen für den iOS-Simulator (die den DCCIOS32-Compiler verwenden), hat die Direktive $O genau wie bei den Delphi-Desktop-Compiler einen lokalen Gültigkeitsbereich.