パフォーマンスに関する都市伝説

http://www-06.ibm.com/jp/developerworks/java/051104/j_j-jtp09275.shtml
Javaは遅い」という昔からウンザリするくらい耳にしてきた合言葉に関するIBM developerWorkの記事です。内容は、JVMは(C++などに比べて)パフォーマンスが悪い、というのは単なる都市伝説だということを具体的に検証したもの。特にMustangで実装されたエスケープ分析に関するくだりは非常に興味深いです(実感としてはようやく出てくれたという感じですが)。

余談ですが、うちの会社では社内で使用する文書に独自のXMLフォーマットを利用しています。そのパーサプログラムがJavaで作ってあったのですが、あまりパフォーマンスが良くないため解析したところ、ボトルネックになっているのはXSLT関連のライブラリであることが分かりました(DOM回りは独自実装)。結局これに対処するよりはC++で再実装した方が現実的ということになり、実際に作ってみたところ数倍の高速化が実現できたというオチでした。これはライブラリの話なので言語そのもののパフォーマンスではないのですが、ライブラリの豊富さがJavaの人気の一端を担っているのも事実なので、その辺りのことも考慮しなくてはいけないなと実感したのでした。もちろん別の言語でもまったく同じことが言えるわけですけどね。うちの場合担当者がJava以上にC++に精通していたというのも事実なので。