Einzelnen Beitrag anzeigen

Michael Ebner

Registriert seit: 18. Mär 2006
Ort: Öschingen
4 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Codeoptimierung lieber abschalten

  Alt 3. Jan 2023, 10:20
In der Hilfe zu Delphi findet man zur Optimierung die folgenden Aussagen:

Zitat:
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.
Die Aussage, dass die Optimierung des Delphi-Compilers zu keinerlei Änderungen führen, entspricht nicht der Wahrheit. (Konkret Delphi 11, Update 1, kompiliert für WIN 32)

Das Bemerkenswerte daran: Das trat jetzt gerade nicht in einem Fall auf, in dem Timing-Geschichten oder so etwas $DINGE beeinflussen könnten, nicht um Threads, nicht um irgendwelche eingebundenen Bibliotheken, die möglicherweise sehr krude programmiert wurden. Sondern um simple String-Bearbeitung mit den Delphi-Standard-Units.

Von daher meine Empfehlung: Die Codeoptimierung sollte immer deaktiviert sein.
  Mit Zitat antworten Zitat