/Oy (Framezeiger unterdrücken)
Unterdrückt die Erstellung von Framezeigern im Anrufstapel.
Syntax
/Oy*
Hinweise
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 ermöglicht Framezeiger-Auslassungen und /Oy- deaktiviert Auslassungen. In x64-Compilern sind /Oy und /Oy- nicht verfügbar.
Wenn Ihr Code eine framebasierte Adressierung erfordert, können Sie die /Oy-Option nach der /Ox-Option angeben oder die Optimierung mit den Argumenten "y" und "off" verwenden, um maximale Optimierung mit framebasierter Adressierung zu erzielen. Der Compiler erkennt die meisten Situationen, in denen framebasierte Adressierung erforderlich ist (z. B. mit den _alloca
Funktionen und setjmp
funktionen und mit strukturierter Ausnahmebehandlung).
Die Optionen /Ox (Die meisten Geschwindigkeitsoptimierungen aktivieren) und /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren) bedeuten /Oy. Die Angabe von /Oy- nach der Option "/Ox", "/O1" oder "/O2 " deaktiviert /Oy, unabhängig davon, ob sie explizit oder impliziert ist.
Die /Oy-Compileroption erschwert die Verwendung des Debuggers, da der Compiler Framezeigerinformationen unterdrückt. Wenn Sie eine Debugcompileroption (/Z7, /Zi, /ZI) angeben, empfehlen wir, die Option /Oy- nach 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 Konfigurationseigenschaftenseite>C/C++>-Optimierung aus.
Ändern Sie die Omit Frame Pointers-Eigenschaft . 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 der 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