4
好解釋我的問題,最好的辦法就是槽2個例子:Visual Studio是否仍然可以優化預編譯的代碼?
例1:
你已經做了自己的框架或某種被稱爲在MyLibrary的引擎,你已經建立是一個.lib帶有最大優化選項。現在包含標題並將.lib鏈接到一個名爲MyImplementation的新項目中。該項目使用了MyLibrary的大部分功能,當您完成時,將生成項目(再次以最大優化)。
例2:
同樣,你有相同的庫,但不是構建它,你把它開源。然後你做同樣的MyProject的,包括你的頭和你建立啓用最大優化的MyProject。
是的話,例2運行速度更快,因爲編譯器可以訪問完整的源代碼(框架/引擎+你使用它的項目)?
我的猜測是這是不太可能的。據我所知,傳統上優化是在單個編譯單元上完成的(單個庫通常由許多這樣的編譯單元組成),並且根本不考慮在整個「項目」中使用代碼。也可以在鏈接時進行一些優化,但這些顯然會將所有代碼都鏈接到可執行文件中,而不管您的項目是什麼。 (也就是說,我不是一個編譯器專家,所以請帶上一粒沙子。) – millimoose
過程間優化應該考慮到多個編譯單元,不是嗎? – user1779802