/OPT (Optimierungen)

Steuert die Optimierungen, die während eines Builds von LINK ausgeführt werden.

/OPT:{REF | NOREF}
/OPT:{ICF[=iterations] | NOICF}

Argumente

  • REF | NOREF
    Mit /OPT:REF werden Funktionen und Daten entfernt, auf die nicht verwiesen wird, während diese Funktionen und Daten mit /OPT:NOREF beibehalten werden.

    Standardmäßig entfernt LINK nicht referenzierte Paketfunktionen.Ein Objekt enthält Paketfunktionen (COMDATs), wenn es mit der Option /Gy kompiliert worden ist.Diese Optimierung wird transitive COMDAT-Eliminierung genannt.Geben Sie /OPT:NOREF an, um diese Standardeinstellung zu überschreiben und COMDATs ohne Verweise im Programm zu behalten.Sie können die Option /INCLUDE verwenden, um das Entfernen eines bestimmten Symbols zu überschreiben.

    Bei Angabe von /DEBUG ist die Standardeinstellung für /OPTNOREF (andernfalls ist sie REF), und alle Funktionen werden im Abbild beibehalten.Um diese Standardeinstellung zu überschreiben und ein Debugbuild zu optimieren, geben Sie /OPT:REF an.Mit der /OPT:REF-Option wird inkrementelles Verknüpfen deaktiviert.

    COMDAT-Daten müssen mithilfe von __declspec(selectany) ausdrücklich als solche gekennzeichnet werden.

    Bei Angabe von /OPT:REF ist /OPT:ICF standardmäßig aktiviert.Wenn Sie /OPT:REF, nicht jedoch /OPT:ICF festlegen möchten, geben Sie Folgendes an:

    link /opt:ref /opt:noicf
    

    Durch Angabe von /OPT:ICF wird die /OPT:REF-Option nicht aktiviert.

  • ICF[= iterations**] | NOICF**
    Verwenden Sie /OPT:ICF[=iterations], um eine identische COMDAT-Faltung auszuführen.Redundante COMDATs können aus der Linkerausgabe entfernt werden.iteration gibt die Häufigkeit für das Durchlaufen der Symbole für Duplikate an.Die Anzahl der Iterationen beträgt standardmäßig 2.Zusätzliche Iterationen können mehr Duplikate auffinden, die bei der Faltung in vorherigen Iterationen unentdeckt blieben.

    Beachten Sie, dass sich bei standardmäßiger Aktivierung von ICF mit expliziter Angabe von /OPT:REF der Linker anders verhält als bei expliziter Angabe von /OPT:REF,ICF.Bei der Standardeinstellung von ICF mit /OPT:REF werden schreibgeschützte Daten nicht gefaltet.Dies gilt auch für .rdata, .pdata und .xdata.Die Standardeinstellung ICF mit /OPT:REF führt jedoch dazu, dass beim Erstellen von Abbildern für Itanium und x64 eine geringere Funktionsfaltung auftritt, da Funktionen in diesen Modulen eine größere Abhängigkeit von schreibgeschützten Daten wie .pdata und .xdata aufweisen.Um ICF vollständig zu verwenden, geben Sie explizit /OPT:ICF an.

    Funktionen werden mit der Compileroption /Gy in COMDATs abgelegt, und const-Daten werden in COMDATs abgelegt.Ein Beispiel zur Angabe von Daten zur Faltung finden Sie unter Selectany.

    ICF ist standardmäßig aktiviert, wenn REF aktiviert ist und in einem Debugbuild explizit aktiviert werden muss.NOICF kann angegeben werden, wenn REF angegeben wurde.

    HinweisHinweis

    /OPT:ICF kann dazu führen, dass dieselbe Adresse verschiedenen Funktionen oder schreibgeschützten Datenmembern (mit /Gy kompilierten const-Variablen) zugewiesen wird.Deshalb kann /OPT:ICF ein Programm unterbrechen, bei dem die Adressen von Funktionen oder schreibgeschützten Datenmembern verschieden sein müssen.Weitere Informationen finden Sie unter /Gy (Funktionslevel-Linking aktivieren).

Hinweise

Optimierungen verkleinern im Allgemeinen die Abbildgröße und beschleunigen die Programmausführung, allerdings auf Kosten einer längeren Verknüpfungsdauer.

Verwenden Sie die /VERBOSE-Option, um die durch /OPT:REF entfernten Funktionen und die durch /OPT:ICF gefalteten Funktionen anzuzeigen.

So legen Sie diese Linkeroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts.Ausführliche Informationen finden Sie unter Festlegen von Visual C++-Projekteigenschaften.

  2. Klicken Sie auf den Ordner Linker.

  3. Klicken Sie auf die Eigenschaftenseite Optimierung.

  4. Ändern Sie eine der folgenden Eigenschaften:

    • COMDAT-Faltung aktivieren

    • Für Windows 98 optimieren

    • Verweise

So legen Sie diese Linkeroption programmgesteuert fest

Siehe auch

Referenz

Festlegen von Linkeroptionen

Linkeroptionen