/GL(神秘程式優化)

啟用整個程式最佳化。

語法

/GL[-]

備註

神秘le 程式優化可讓編譯器使用程式中所有模組的資訊來執行優化。 若沒有整個程式優化,則會以每個模組 (編譯和) 為基礎執行優化。

神秘le 程式優化預設為關閉,且必須明確啟用。 不過,您也可以使用 明確停用它 /GL-

使用所有模組的資訊,編譯器可以:

  • 優化跨函式界限的暫存器使用。

  • 對全域資料進行追蹤修改,以便減少負載和存放區的數目。

  • 追蹤指標取值所修改的可能專案集,減少所需的載入和存放區。

  • 在模組中內嵌函式,即使函式是在另一個模組中定義也一樣。

.obj/GL 產生的檔案無法由 連結器公用程式使用,例如 EDITBINDUMPBIN

如果您使用 和 /c 編譯器 /GL ,則應該使用 /LTCG 連結器選項來建立輸出檔案。

/ZI 無法搭配使用 /GL

舊版 Visual Studio 和 MSVC 工具組通常無法讀取目前版本中所產生的 /GL 檔案格式。 除非您願意為所有版本的 Visual Studio 寄送檔案複本 .lib ,否則您預期使用者現在及未來會使用,請勿寄送 .lib 由 所產生的 /GL 檔案所 .obj 組成的檔案。 如需詳細資訊,請參閱 二進位相容性 的限制。

.obj/GL 和 先行編譯標頭檔產生的檔案不應該用來建置檔案,除非檔案 .lib 連結在產生 /GL.obj 檔案的同一 .lib 部電腦上。 在連結時,需要來自 .obj 檔案預先編譯標頭檔的資訊。

如需可用優化的詳細資訊,以及整個程式優化的限制,請參閱 /LTCG/GL 也會讓設定檔引導式優化可供使用。 針對設定檔引導式優化進行編譯,而且如果您想要從設定檔引導式優化進行函式排序時,您必須使用 /Gy 或 隱含 /Gy 的編譯器選項進行編譯。

在 Visual Studio 開發環境中設定這個連結器選項

如需如何在開發環境中指定 /GL 的詳細資訊,請參閱 /LTCG (連結時間程式碼產生)

若要以程式設計方式設定這個連結器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法