/GL (Optimierung des gesamten Programms)

Aktiviert die Optimierung des gesamten Programms.

Syntax

/GL[-]

Hinweise

Die Optimierung des gesamten Programms ermöglicht es dem Compiler, Optimierungen mit Informationen zu allen Modulen im Programm durchzuführen. Ohne vollständige Programmoptimierung werden Optimierungen pro Modul (Compiland) durchgeführt.

Die Optimierung des gesamten Programms ist standardmäßig deaktiviert und muss explizit aktiviert sein. Es ist jedoch auch möglich, es explizit zu deaktivieren mit /GL-.

Mit Informationen zu allen Modulen kann der Compiler:

  • Optimieren Sie die Verwendung von Registern über Funktionsgrenzen hinweg.

  • Verbessern Sie die Nachverfolgung von Änderungen an globalen Daten, sodass die Anzahl der Lasten und Speicher reduziert wird.

  • Verfolgen Sie den möglichen Satz von Elementen, die von einer Zeiger-Ableitung geändert wurden, und verringern Sie die erforderlichen Lasten und Speicher.

  • Inlineieren Sie eine Funktion in einem Modul, auch wenn die Funktion in einem anderen Modul definiert ist.

.obj Dateien, mit /GL denen produziert wird, können nicht von Linker-Dienstprogrammen verwendet werden, wie EDITBIN z. B. und DUMPBIN.

Wenn Sie Ihr Programm kompilieren, /GL und /cverwenden Sie die Option "/LTCG linker", um die Ausgabedatei zu erstellen.

/ZI kann nicht mit /GL

Das Format von Dateien, die in der aktuellen Version erstellt wurden /GL , ist häufig von späteren Versionen von Visual Studio und dem MSVC-Toolset nicht lesbar. Wenn Sie nicht bereit sind, Kopien der .lib Datei für alle Versionen von Visual Studio zu versenden, erwarten Sie, dass Ihre Benutzer sie jetzt und in Zukunft verwenden, senden Sie keine .lib Datei aus Dateien, die .obj von /GL . Weitere Informationen finden Sie unter Einschränkungen für binäre Kompatibilität.

.obj Dateien, die von /GL und vorkompilierten Headerdateien erstellt werden, sollten nicht zum Erstellen einer .lib Datei verwendet werden, es sei denn, die .lib Datei ist auf demselben Computer verknüpft, auf dem die /GL .obj Datei erstellt wurde. Informationen aus der vorkompilierten Headerdatei der .obj Datei werden zur Verknüpfungszeit benötigt.

Weitere Informationen zu den verfügbaren Optimierungen und den Einschränkungen der gesamten Programmoptimierung finden Sie unter /LTCG. /GL stellt auch profilgeführte Optimierung zur Verfügung. Beim Kompilieren für profilgeführte Optimierungen und wenn Sie die Funktionsbestellung aus Ihren profilgeführten Optimierungen wünschen, müssen Sie mit /Gy oder einer Compileroption kompilieren, die /Gy impliziert.

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

Weitere Informationen zum Angeben /GL in der Entwicklungsumgebung finden Sie unter /LTCG (Linkzeitcodegenerierung).

So legen Sie diese Linkeroption programmgesteuert fest

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile