關於Linux編譯優化幾個必須掌握的姿勢

2022-07-23 20:18:21 字數 334 閱讀 5833

當選擇了

config_cc_optimize_for_size

它會是os,否則就是o2。

其實o2和os,都是一些優化選項的集合:

gcc -c -q -o2 --help=optimizers > /tmp/o2-opts

gcc -c -q -os --help=optimizers > /tmp/os-opts

前者傾向於基於速度的優化,後者傾向於基於size更小的優化。

在全域性已經使能o1, o2, o3, os的情況下,某個單獨的函式我們不想做任何的優化,可以用__attribute__((optimize("o0")))來修飾這個函式

宋寶華 關於Linux編譯優化幾個必須掌握的姿勢

首先我們都知道,linux核心如果用o0編譯,是無法編譯過的,linux的核心編譯,要麼是o2,要麼是os,這點從linux的makefile裡面可以看出 當選擇了 config cc optimize for size 它會是os,否則就是o2。其實o2和os,都是一些優化選項的集合 gcc c ...

關於幾個優化

計算機中的指令執行時間是 加減法運算 1ns 乘法運算 5 6ns 除法運算 50ns 因此在編寫程式時,應該使用一些操作代替乘除法的操作。1 表示式優化 替換程式中的乘除法 如 a 8 可以替換為 a 3 而a 13 可以替換為 a 3 a 2 a 但是除法運算卻不可以。只有除法操作中的除數正好是...

C 編譯優化的幾個例子

程式設計師一般都喜歡談論程式設計技巧,尤其是能優化程式效率的技巧,c 程式設計師都不例外。但很多廣泛流傳的技巧都是基於乙個假設,就是編譯器非常愚蠢。但事實上剛好相反,現在的編譯器其實非常聰明。不信的話你看下面的例子。test函式的作用是返回從1加到100的值,大家都知道結果是5050。使用gcc編譯...