/Oy (Framezeiger unterdrücken)
Unterdrückt die Erstellung von Framezeigern im Anrufstapel.
Syntax
/Oy...
Bemerkungen
Durch diese Option werden Funktionsaufrufe beschleunigt, da keine Framezeiger eingerichtet und entfernt werden müssen. Außerdem wird ein weiteres Register für die allgemeine Nutzung freigegeben.
/Oy aktiviert das Auslassen von Framezeigern und /Oy- deaktiviert das Auslassen. In x64-Compilern sind /Oy und /Oy- nicht verfügbar.
Wenn Ihr Code eine framebasierte Adressierung erfordert, können Sie die Option /Oy- nach der Option /Ox angeben oder optimize mit den Argumenten "y" und off verwenden, um eine maximale Optimierung mit der framebasierten Adressierung zu erzielen. Der Compiler erkennt die meisten Situationen, in denen framebasierte Adressierung erforderlich ist (für instance, mit den _alloca
Funktionen und setjmp
und mit strukturierter Ausnahmebehandlung).
Die Optionen /Ox (Die meisten Geschwindigkeitsoptimierungen aktivieren) und /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren) impliziert /Oy. Die Angabe von /Oy- nach der Option /Ox, /O1 oder /O2 deaktiviert /Oy, unabhängig davon, ob es explizit oder implizit ist.
Die Compileroption /Oy erschwert die Verwendung des Debuggers, da der Compiler Framezeigerinformationen unterdrückt. Wenn Sie eine Debugcompileroption (/Z7, /Zi, /ZI) angeben, empfiehlt es sich, die Option /Oy- nach allen anderen Optimierungscompileroptionen anzugeben.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>-Optimierung aus.
Ändern Sie die Eigenschaft Framezeiger auslassen . Diese Eigenschaft fügt nur die Option /Oy hinzu oder entfernt sie. Wenn Sie die Option /Oy- hinzufügen möchten, wählen Sie die Eigenschaftenseite Befehlszeile aus, und ändern Sie Zusätzliche Optionen.
So legen Sie diese Compileroption programmgesteuert fest
- Siehe OmitFramePointers.
Siehe auch
/O-Optionen (Code optimieren)
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile