編譯器編譯命令裡有設定選項,透過設定,你可以要求 不最佳化,也可以要求用哪種最佳化。
具體選項有哪些,要查自己編譯器的幫助檔案。
例如,MS VC++ 6.0 編譯器編
最佳化選項:
/O1:最佳化使產生的可執行程式碼最小
/O2:最佳化使產生的可執行程式碼速度最快
/Oa:指示編譯器程式裡沒有使用別名,可以提高程式的執行速度
/Ob:控制內聯(inline)函式的展開
/Od:禁止程式碼最佳化
/Og:使用全域性最佳化
/Oi:用內部函式去代替程式裡的函式呼叫,可以使程式執行的更快,但程式的長度變長
/Op:提高浮點數比較運算的一致性
/Os:產生儘可能小的可執行程式碼
/Ot:產生儘可能塊的可執行程式碼
/Ow:指示編譯器在函式體內部沒有使用別名
/Ox:組合了幾個最佳化開關,達到儘可能多的最佳化
/Oy:阻止呼叫堆疊裡建立幀指標
/O2 為了加速,會最佳化掉。 選 /Od 不最佳化。
編譯器編譯命令裡有設定選項,透過設定,你可以要求 不最佳化,也可以要求用哪種最佳化。
具體選項有哪些,要查自己編譯器的幫助檔案。
例如,MS VC++ 6.0 編譯器編
最佳化選項:
/O1:最佳化使產生的可執行程式碼最小
/O2:最佳化使產生的可執行程式碼速度最快
/Oa:指示編譯器程式裡沒有使用別名,可以提高程式的執行速度
/Ob:控制內聯(inline)函式的展開
/Od:禁止程式碼最佳化
/Og:使用全域性最佳化
/Oi:用內部函式去代替程式裡的函式呼叫,可以使程式執行的更快,但程式的長度變長
/Op:提高浮點數比較運算的一致性
/Os:產生儘可能小的可執行程式碼
/Ot:產生儘可能塊的可執行程式碼
/Ow:指示編譯器在函式體內部沒有使用別名
/Ox:組合了幾個最佳化開關,達到儘可能多的最佳化
/Oy:阻止呼叫堆疊裡建立幀指標
/O2 為了加速,會最佳化掉。 選 /Od 不最佳化。