適当なことをいっている気がしたので、きちんと確かめてみた。
ベンチマークはこれで。
http://www.asahi-net.or.jp/~AN4J-UEHR/homepage.en/jp/.NETplaf/bench.htm Win2KSP3/AthlonXP1700+。gcc は cygwin 版。
┌──────┬──────┬───┬───┬───┐
│ 実行環境│コンパイラ │最適化│rev40 │fib20 │
├──────┼──────┼───┼───┼───┤
│j2se1.4.1_01│j2se1.4.1_01│ - │ 214│ 1146│
├──────┼──────┼───┼───┼───┤
│j2se1.4.1_01│gcc-3.2-3 │ - │ 217│ 1151│
├──────┼──────┼───┼───┼───┤
│w32 native │gcc-3.2-3 │ - │ 300│ 2010│
├──────┼──────┼───┼───┼───┤
│w32 native │gcc-3.2-3 │ -O │ 199│ 1423│
├──────┼──────┼───┼───┼───┤
│w32 native │gcc-3.2-3 │ -O2 │ 139│ 1091│
└──────┴──────┴───┴───┴───┘
gcj は gas に落としているので最適化が効くみたい。
JIT や Hotspot が有効なプログラムでは JVM の方が速いかも。