Gentoo ユーザーとして、私は完全な OS でかなりの数の最適化を試みましたが、それについてGentoo フォーラムで終わりのない議論がありました。GCC 用の優れたフラグがwikiにあります。
要するに、サイズの最適化は、RAM が限られている古い Pentium3 ラップトップで最適に機能しましたが、Core2Duo を搭載したメインのデスクトップ マシンでは、-O2 の方が全体的に優れた結果が得られました。
最も最適化された x86 (32 ビット) 固有のフラグに興味がある場合は、小さなスクリプトもあります。
gcc を使用していて、特定のアプリケーションを本当に最適化したい場合は、ACOVEAを試してください。一連のベンチマークを実行し、コンパイル フラグのすべての可能な組み合わせでそれらを再コンパイルします。サイトでハフマンエンコーディングを使用した例があります(低いほど良い):
A relative graph of fitnesses:
Acovea Best-of-the-Best: ************************************** (2.55366)
Acovea Common Options: ******************************************* (2.86788)
-O1: ********************************************** (3.0752)
-O2: *********************************************** (3.12343)
-O3: *********************************************** (3.1277)
-O3 -ffast-math: ************************************************** (3.31539)
-Os: ************************************************* (3.30573)
(この Opteron システムでは -Os が最も遅いことがわかったことに注意してください。)