Linux

使用 -O3 優化編譯 GNU/Linux

  • April 24, 2020

據說用-O3gcc 優化選項編譯 GNU 工具和 Linux 核心會產生奇怪和時髦的錯誤。這是真的嗎?有沒有人嘗試過,或者它只是一個騙局?

它在Gentoo中使用過,我沒有發現任何異常。

-O3有幾個缺點:

  1. 首先,它產生的程式碼通常比-O2or慢-Os。有時它會由於循環展開而產生更長的程式碼,實際上可能由於程式碼的記憶體性能較差而變慢。
  2. 據說它有時會產生錯誤的程式碼。這可能是由於優化錯誤或程式碼錯誤(如忽略嚴格別名)。由於核心程式碼有時是並且有時必須是“智能的”,我會說一些核心開發人員可能會犯一些錯誤。當我使用 gcc 4.5 編譯核心時,我遇到了各種奇怪的問題,比如使用者空間實用程序崩潰,當時它是穩定的。由於各種錯誤,我仍然將 gcc 4.4 用於核心和幾個選定的使用者空間實用程序。同樣可以申請-O3
  3. 我認為它不會為 Linux 核心帶來太多好處。核心不進行繁重的計算,並且在某些地方,它通過彙編進行了優化。-O3flag不會改變上下文切換的成本或 I/O 的速度。我不認為像整體性能的 <0.1% 加速是值得的。

引用自:https://unix.stackexchange.com/questions/1597