/GL
(神秘程式優化)
啟用整個程式最佳化。
語法
/GL
[-
]
備註
神秘le 程式優化可讓編譯器使用程式中所有模組的資訊來執行優化。 若沒有整個程式優化,則會以每個模組 (編譯和) 為基礎執行優化。
神秘le 程式優化預設為關閉,且必須明確啟用。 不過,您也可以使用 明確停用它 /GL-
。
使用所有模組的資訊,編譯器可以:
優化跨函式界限的暫存器使用。
對全域資料進行追蹤修改,以便減少負載和存放區的數目。
追蹤指標取值所修改的可能專案集,減少所需的載入和存放區。
在模組中內嵌函式,即使函式是在另一個模組中定義也一樣。
.obj
與 /GL
產生的檔案無法由 連結器公用程式使用,例如 EDITBIN
和 DUMPBIN
。
如果您使用 和 /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
(連結時間程式碼產生) 。
若要以程式設計方式設定這個連結器選項
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應