Der Microsoft Docs-Artikel /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren) besagt für Visual Studio 2017:
Die Compiler-Optionen /O1 und /O2 sind ein schneller Weg, um mehrere spezifische Optimierungsoptionen auf einmal festzulegen. Die Option /O1 setzt die einzelnen Optimierungsoptionen, die in den meisten Fällen den kleinsten Code erstellen. Die Option /O2 setzt die Optionen, die in den meisten Fällen den schnellsten Code erstellen. Die Option /O2 ist die Standardeinstellung für Release-Builds. Diese Tabelle zeigt die spezifischen Optionen, die von /O1 und /O2 gesetzt werden:
Option Äquivalent zu
/O1 (Größe minimieren) /Og /Os /Oy /Ob2 /GF /Gy
/O2 (Geschwindigkeit maximieren) /Og /Oi /Ot /Oy /Ob2 /GF /Gy
Aus dem Microsoft Docs-Artikel /O-Optionen (Code optimieren):
/Og
aktiviert globale Optimierungen
/Oi
erzeugt intrinsische Funktionen für entsprechende Funktionsaufrufe.
/Ot
(eine Standardeinstellung) weist den Compiler an, Optimierungen zugunsten der Geschwindigkeit vor Optimierungen zugunsten der Größe zu bevorzugen.
/Oy
unterdrückt die Erstellung von Rahmenzeigern im Aufrufstapel für schnellere Funktionsaufrufe.
/Ob2
erweitert Funktionen, die als inline
oder __inline
markiert sind, und jede andere Funktion, die der Compiler wählt
Die /G-Optionen sind:
/GF
(Doppelte Zeichenfolgen eleminieren)
/Gy
(Funktionsweises Verlinken aktivieren)
Die /G
-Optionen sind nicht strikt Optimierungen, also bleiben uns /Og
und /Ot
, plus #pragma intrinsic
(für Punkt 2 in der Liste), #pragma auto_inline
(für Punkt 5 in der Liste) und möglicherweise #pragma inline_depth
. Siehe Microsoft Docs-Artikelem Optimierungs-Pragmas und Schlüsselwörter
Siehe auch Microsoft Docs-Artikel /Ox (Aktiviere die meisten Geschwindigkeitsoptimierungen), der darauf hinweist, dass die Option /Ox
ähnlich wie die Option /O2
/GF oder /Gy
aktiviert. Siehe auch Was ist der Unterschied zwischen den Compiler-Optionen /Ox und /O2?
Der Microsoft Docs-Artikel Compiler-Optionen nach Kategorie aufgelistet enthält eine Liste von Compiler-Optionen mit Links, was sie bedeuten.