/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 /c
verwenden 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 WholeProgramOptimization.
Siehe auch
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile