/Oy (Framezeiger unterdrücken)
Unterdrückt das Erstellen von Framezeigern auf die Aufrufliste.
/Oy[-]
Hinweise
Diese Option beschleunigt Funktionsaufrufe, da keine Framezeiger eingerichtet und entfernt werden müssen. Außerdem wird ein weiteres Register (EBP bei Intel 386- oder neueren Prozessoren) zum Speichern häufig verwendeter Variablen und untergeordneter Ausdrücke freigegeben.
/Oy aktiviert die Unterdrückung des Framezeigers, und /Oy- deaktiviert die Unterdrückung, /Oy ist nur in x86-Compilern verfügbar.
Wenn der Code eine EBP-basierte Adressierung erfordert, können Sie die /Oy–-Option nach der /Ox-Option angeben oder optimize zusammen mit dem "y"-Argument und dem "off"-Argument verwenden, um die größtmögliche Optimierung für die EBP-basierte Adressierung zu erhalten. Der Compiler erkennt die meisten Situationen, in denen eine EBP-basierte Adressierung erforderlich ist (beispielsweise bei der _alloca-Funktion und der setjmp-Funktion sowie bei strukturierter Ausnahmebehandlung).
Die /Ox (Komplette Optimierung)-Option und die /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren)-Option implizieren /Oy. Durch Angeben von /Oy– nach einer der Optionen /Ox, /O1 oder /O2 wird /Oy deaktiviert, sei es explizit oder implizit.
Die /Oy-Compileroption erschwert die Verwendung des Debuggers, da der Compiler hierdurch Framezeigerinformationen unterdrückt. Wenn Sie eine Debug-Compileroption (/Z7, /Zi, /ZI) festlegen, sollten Sie die Option /Oy- nach allen anderen Optimierungsoptionen angeben.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.
Klicken Sie auf den Ordner C/C++.
Klicken Sie auf die Eigenschaftenseite Optimierung.
Ändern Sie die Eigenschaft Framezeiger unterdrücken. Durch diese Eigenschaft wird nur die /Oy-Option hinzugefügt oder entfernt. Wenn Sie die /Oy--Option hinzufügen möchten, klicken Sie auf Befehlszeile, und ändern Sie Zusätzliche Optionen.
So legen Sie diese Compileroption programmgesteuert fest
- Weitere Informationen finden Sie unter OmitFramePointers.