.NET と Java の実行環境で収集できた情報によると、現在の状況は次のとおりです。
最新の Java VM は継続的な再コンパイルを実行でき、プロファイリングと組み合わせることでパフォーマンスを大幅に向上させることができます。古い JVM は JIT を採用していました。この記事の詳細: http://www.ibm.com/developerworks/library/j-jtp12214/ および特に: Java の理論と実践: 動的コンパイルとパフォーマンス測定
.NET は JIT または NGEN を使用してネイティブ コードを生成しますが、ネイティブ コードが生成されると、それ以上の (ランタイム) 最適化は実行されません。
ベンチマークはさておき、聖戦をエスカレートさせるつもりはないが、これは Java Hotspot VM が .Net よりも 1 世代進んでいることを意味するのだろうか。Java VM で採用されているこれらのテクノロジは、最終的に .NET ランタイムに組み込まれるのでしょうか?