Firefox 3.1はさらに速くなる

Microsoft IEにとってはまた悪いニュースか。Firefox3はIE7と比べるとJavascript実行速度が10倍以上速いということになっているんだが、Firefox3.1ではこの差がもっと開きそうだ。
Firefox to get massive JavaScript performance boost:
Mozilla is leveraging an impressive new optimization technique to bring a big performance boost to the Firefox JavaScript engine. The code was merged today (but is not yet ready to be enabled by default in the nightly builds) and is planned for inclusion in Firefox 3.1, the next incremental update of the open-source web browser.
その理由はUCLAのAndreas GalとMichael Franzが開発した「トレーシング(Tracing)」技術を用いたJITコンパイラ(Tracemonkey)を搭載するから。トレーシングは普通のJITと何が違うかというと、いきなりスクリプトを完全にコンパイルするんじゃなくて、ループなど最適化効果の高い部分でどれくらい頻繁にメソッドが呼ばれるかを調べてからコンパイルする点にある。これによって最初にコンパイルするための待ち時間が必要という、JITの弱点も解消される。

Tracingに関するGalの論文はこちら。
論文にもあるとおり、JIT自体はJavaVMでSunのHotspotなどでメジャーになったが、それをやるためにVMは肥大化するので埋め込みデバイスなどリソース制限がある環境には適さない。Tracing JITというアイデア自体は、かつてない発明というよりも実行時に本体の足を引っ張らずに対象を調べてちょこちょこっとJITを賢くやってしまう、というイメージだ。

Mozillaでは既にFirefox4をターゲットにTamarinという次世代Javascript実行時エンジンプロジェクトが存在するが、Firefox 3.1はそれを待たずに再び劇的な速度進化を遂げることになる。下のベンチマーク結果グラフは全体パフォーマンスを示すわけではないので、20倍とか30倍ということにはならないだろうが、Firefox 3に比べて数倍にはなるんじゃないか? IE7は論外ということになるんだろう。