・GCC-4.3.0
とりあえず,GCC の3種のバージョンをさっくりと姫野ベンチの S モードでテスト. マシンは Athlon64 X2 4400+(2.2GHZ) + Mem 2G + Plamo-4.5 の開発環境(glibc-2.7)。 コンパイル時に最適化オプションを指定しない(-O0)結果と最大最適化(-O3)した結果の 2つを比較. 一応,XFce の Terminal が動いている状態で,swap を使用していないことは確認した.
f77 f90 C ------------------------------------------ -O0 -O3 -O0 -O3 -O0 -O3 (最適化フラグ) 3.4.6 215.6 449.1 97.7 167.8 4.2.3 146.3 312.6 79.9 191.8 4.3.0 149.5 287.8 81.6 161.8 (単位は MFLOPS)
これを見る限りでは,Fortran に関しては 3.4.6 >> 4.2.3 > 4.3.0,C に関しては 4.2.3 > 3.4.6 > 4.3.0 という感じ. ただ,Fortran は規格が違う(GCC-3 までは F77 だけど,GCC-4 だと F90)ので, 単純に比較しても意味はないかも知れない.
環境の Glibc-2.7 をコンパイルしたのが GCC-4.2.3 だから,リンク時とかは GCC-4.2.3 に多少有利に働くかも知れないけど, 姫野ベンチそのものはメモリ上でのループだから,多分大勢には影響ないだろう.
GCC-4.2 系は Web で見ているとあまり評判がよくなかったりするし,手元でも boost を素直にコンパイルできなかったり(jam を更新しないとエラーになる)したので, 多少気になっていたのだけど, この結果を見る限りではそれほど悪くなくて, むしろ GCC-4.3 系はもう少し熟成するのを待った方がいいかな,という感じ.
一応,GCC-4.2.3 -> 4.3.0 のパッチをあててビルドしたのだけど,diff.bz2 は 36MB あった.4.3.0 の tar.bz2 が 59MB なんで多少は小さいのだろうけど, 変更点を調べようという気力は出ないなぁ..