Visual C++ 7.1 vs. Intel C++ Compiler 9.0

フリーの「Visual C++ Toolkit 2003」(以降VC++7.1) と 商用の「Intel C++ Compiler 9.0」(以降ICC9.0)のベンチマークを行いました。

巷では、ICC9.0の最適化の方が優れているとの評価ですが、これを使うと嘘つきになります。
ベンチマークの結果からVC++7.1の生成するコードが最速であることがわかりました。
フリーのコンパイラがこんなに速くていいのでしょうか。

ベンチマーク結果

Tcl/Tk 8.5a3のソースをそれぞれのコンパイラでビルドし、自作ソフトTkEngineで性能を測定しました。

コンパイラ最適化オプションTkEngine値備考
VC++7.1-Op -Ox -G7203最速!
ICC9.0-Op -Ox -G7196 
VC++6.0-Op -O2 -Gs186 
※ Windows XP, Pentium 4 540(3.20GHz), Hyper-Threading有効, GeForce 6200 で測定

ちょっと気になる点

ICC9.0でビルドしたバイナリは、libmmd.dllというライブラリが必要でした。
きっとこのdllを不要にするオプションがあるはずですが、要調査ですね。

ICC9.0のデフォルトは、-Qvc8オプションのようです。VC++8.0ってまだ売ってませんよね?
他に-QxN, -QxPとかも試して見ましたが、実行性能にほとんど変化はありませんでした。

現在の野望

VC++7.1を使って、世界最速のTclkitFreewrapを作りたいと思いますが、
現在、正常にビルドできていません。研究中です。気長にお待ちくいださい。。

参考