JavaがCより速くなる理由

 JavaはCより速かった — ありえるえりあの実測データを興味深く眺めていた。

 このあたりのジャンルは僕は専門ではないので聞きかじりになってしまうのだけど、Javaホットスポットの場合、実行されているCPUなどの情報を元に、環境に合わせた最適化ができるというメリットがあるらしい。つまり、CPUの種類を見て並列処理系の命令セットを活用したりだとか、そういう最適化。コンパイルによってバイナリコードを作るC言語のような言語だと、コンパイル時でどのCPUで動くかなんて決定できないことが多いから最適化しにくい。

 あとは、C言語のalloc - freeによる動的メモリ確保の処理速度が遅く、Javaのnew - GCによるメモリ管理のほうがパフォーマンスが良いらしいと聞く。

 そんなわけで、状況によってはJavaはCより速いらしいとは聞いているのだけど、自分で計測してそういうデータを出したことがないので発言には責任を持てない。