歡迎您光臨本站 註冊首頁

上游 Linux 開發者反對"-O3"級別的核心最佳化

←手機掃碼閱讀     admin @ 2020-05-16 , reply:0

WireGuard 作者 Jason A. Donenfeld 上週向 Linux 核心提交了一個補丁,他建議在使用新發布的 GCC 10 編譯器或更高的版本時,將內核的預設編譯最佳化級別由 -O2 設定為 -O3。

Jason 解釋道,GCC 10 對 -O2 進行了改進,以便在使用 -flto 時縮短編譯時間,不過這似乎是以犧牲效能為代價來實現的。而現在的 -O3 最佳化不存在和 10 年前同樣的 bug,所以當 gcc >= 10 時,他提交的補丁會將 Linux 內核的編譯最佳化預設設定為 -O3 級別。

對於這個提交,部分開發者表示有興趣支援 -O3 最佳化級別的子集功能,甚至探索 -Og 級別的最佳化,並努力縮短構建核心花費的時間,以便於測試。

不過總體看來,將核心預設編譯最佳化級別設定為 -O3 的提案遭到了廣泛的反對,因為這不一定會讓核心變得更快,反而有可能會引入因最佳化而導致出現的特殊特性,甚至會產生讓程式碼變得更慢的地方。

Linus Torvalds 也進行了表態,他不認為這是一個明智的想法,尤其是 GCC -O3 級別的最佳化有時會導致出現問題。

GCC 開發者 Richard Biener 也寫道,他不建議在核心中使用 -O3 級別的最佳化。他曾經提出使用 feedback/profile-driven 的資料讓編譯器做出更好最佳化決策的想法,但這會是一個非常龐大的任務,需要為 FDO 收集到足夠的資料才能體會到方便之處。

因此,至少目前來看,Linux 核心似乎不會追求這種更具侵略性、更激進的編譯器最佳化級別。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/115696/linux-upstream-against-o3-optimize-kernal
上游 Linux 開發者反對"-O3"級別的核心最佳化已經有162次圍觀

http://coctec.com/news/soft/show-post-234692.html