/Oy (Framezeiger unterdrücken)
Aktualisiert: November 2007
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 Option /Oy– nach der Option /Ox angeben oder optimize zusammen mit den Argumenten "y" und "off" 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 (Komplette Optimierung) und die /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren)-Option (Schneller Code) 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
- Siehe OmitFramePointers.