/GL (Optymalizacja całego programu)/GL (Whole Program Optimization)

Włącza optymalizację całego programu.Enables whole program optimization.

SkładniaSyntax

/GL[-]

UwagiRemarks

Optymalizacja całego programu umożliwia kompilatorowi wykonywanie optymalizacji z informacjami na wszystkich modułach w programie.Whole program optimization allows the compiler to perform optimizations with information on all modules in the program. Bez optymalizacji całego programu, optymalizacje są wykonywane dla każdego modułu (jednostka kompilacji).Without whole program optimization, optimizations are performed on a per module (compiland) basis.

Optymalizacja całego programu jest domyślnie wyłączona i należy ją jawnie włączyć.Whole program optimization is off by default and must be explicitly enabled. Można jednak jawnie wyłączyć go za pomocą /GL-.However, it is also possible to explicitly disable it with /GL-.

Wraz z informacjami na temat wszystkich modułów kompilator może:With information on all modules, the compiler can:

  • Optymalizuj użycie rejestrów w granicach funkcji.Optimize the use of registers across function boundaries.

  • Wykonaj lepsze zadanie śledzenia modyfikacji danych globalnych, co pozwala na zmniejszenie liczby obciążeń i magazynów.Do a better job of tracking modifications to global data, allowing a reduction in the number of loads and stores.

  • Wykonaj lepsze zadanie śledzenia możliwego zestawu elementów modyfikowanych przez odwołanie wskaźnika, zmniejszając liczbę obciążeń i magazynów.Do a better job of tracking the possible set of items modified by a pointer dereference, reducing the numbers of loads and stores.

  • Wbudowana funkcja w module, nawet gdy funkcja jest zdefiniowana w innym module.Inline a function in a module even when the function is defined in another module.

pliki. obj tworzone za pomocą /GL nie będą dostępne dla takich narzędzi konsolidatora, jak polecenia EDITBIN i polecenia DUMPBIN..obj files produced with /GL will not be available to such linker utilities as EDITBIN and DUMPBIN.

Jeśli kompilujesz program z /GL i /c, należy użyć opcji konsolidatora/LTCG, aby utworzyć plik wyjściowy.If you compile your program with /GL and /c, you should use the /LTCG linker option to create the output file.

Nie można używać /Zi z /GL/ZI cannot be used with /GL

W kolejnych wersjach Visual C++ nie można odczytać formatu plików utworzonych za pomocą /GL w bieżącej wersji.The format of files produced with /GL in the current version may not be readable by subsequent versions of Visual C++. Nie należy dostarczać pliku lib składającego się z plików. obj, które zostały utworzone za pomocą /GL , chyba że chcemy przesłać kopie pliku lib dla wszystkich wersji Visual C++, których użytkownicy będą mogli używać, teraz i w przyszłości.You should not ship a .lib file comprised of .obj files that were produced with /GL unless you are willing to ship copies of the .lib file for all versions of Visual C++ you expect your users to use, now and in the future.

pliki. obj tworzone za pomocą /GL i prekompilowanych plików nagłówkowych nie powinny być używane do kompilowania pliku. lib, chyba że plik. lib zostanie połączony na tym samym komputerze, na którym wyprodukowała plik /GL . obj..obj files produced with /GL and precompiled header files should not be used to build a .lib file unless the .lib file will be linked on the same machine that produced the /GL .obj file. Informacje z prekompilowanego pliku nagłówkowego pliku. obj będą wymagały czasu połączenia.Information from the .obj file's precompiled header file will be needed at link time.

Aby uzyskać więcej informacji na temat optymalizacji dostępnych wraz z ograniczeniami w zakresie optymalizacji całego programu, zobacz /LTCG.For more information on the optimizations available with and the limitations of whole program optimization, see /LTCG. /GL także udostępnia optymalizację z przewodnikiem. zobacz/LTCG./GL also makes profile guided optimization available; see /LTCG. Podczas kompilowania dla optymalizacji profilowanej i jeśli chcesz, aby funkcja była uporządkowana z optymalizacji profilowanej, należy skompilować z /Gy lub opcją kompilatora, która oznacza/Gy.When compiling for profile guided optimizations and if you want function ordering from your profile guided optimizations, you must compile with /Gy or a compiler option that implies /Gy.

Aby ustawić tę opcję konsolidatora w środowisku programowania Visual StudioTo set this linker option in the Visual Studio development environment

  1. Zobacz /LTCG (generowanie kodu w czasie konsolidacji) , aby uzyskać informacje na temat sposobu określania /GL w środowisku deweloperskim.See /LTCG (Link-time Code Generation) for information on how to specify /GL in the development environment.

Aby programowo ustawić tę opcję konsolidatoraTo set this linker option programmatically

  1. Zobacz: WholeProgramOptimization.See WholeProgramOptimization.

Zobacz teżSee also

Opcje kompilatora MSVCMSVC Compiler Options
Składnia Command-Line kompilatora MSVCMSVC Compiler Command-Line Syntax