Optimierung (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

Siehe auch