/GL
(整個程式優化)
啟用整個程式最佳化。
語法
/GL
[-
]
備註
整個程式優化可讓編譯程式使用程式中所有模組的信息來執行優化。 若沒有整個程式優化,則會以每個模組 (編譯和) 為基礎執行優化。
默認會關閉整個程序優化,而且必須明確啟用。 不過,您也可以使用 明確停用它 /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
(鏈接時間程式代碼產生) 。