Firefox web browser - Faster, more secure & customizable |
Firefox 9ナイトリーに「Type Inference」がマージされたことが報告された。説明によればJavaScriptの実行においてすでに優れた性能向上が確認されており、Krakenで1.44倍の高速化、V8バージョン6で1.3倍の高速化が実現したという。Firefox 9はFirefox史上もっともJavaScript処理が高速なブラウザになりそうだ。マージが進めばFirefox 8でこの機能の恩恵を受けられる可能性もある。6週間というリリーススケジュールの通りに作業が進めば、Firefox 9は12月20日に、Firefox 8は11月8日に登場だ。
「Type Inference」はBrian Hackett氏が開発した型推論エンジン。JavaScriptプログラム全体を解析してスタックスロット、引数、ローカル変数に対して適用できる型の集合を見つけ出す。静的にも動的にも利用できるハイブリッドモデルを採用している。
JavaScriptのような明示的な型を持たないプログラミング言語で効率の高いJITエンジンを実現するには「型推論」が重要になってくる。型が推論できれば、その型に最適化を施すことができる。しかし、型推論の処理自体にコストが掛かりすぎれば、仮に最適化が実施できたとしても意味がない。高速に型推論を実施できるかどうかがFirefox全体のパフォーマンス向上の鍵となる。
試しにV8バージョン6でベンチマークを取ってみると、たしかにFirefox 9ナイトリーはオーロラやベータ、リリース版と比べて高速化していることがわかる。リリース、ベータ、オーロラと順次高速化しているが、9ナイトリーでは今までのペースを上回る高速化が実現されている。
IEやChrome、Operaについても同様にV8ベンチマークを実施すると、どのブラウザも新しいバージョンの方が高速化されていることが確認できる。Chromeが抜きん出たスコアを出しているが、これには注意が必要。Googleによって作成されたV8ベンチマークは実際のWebアプリケーションを反映したベンチマークではないと指摘されることがあり、あくまでもV8ベンチマークというシナリオにおける処理速度に過ぎないようだ。実際ほかのブラウザでは別のベンチマークを併用するなどして、より包括的に処理速度を計測している。
Mozillaは第3のJavaScript JITエンジンとなる「IonMonkey」(イオンモンキー、発音は「アイオンモンキー」の方が近い)の開発に着手している。今回ナイトリーに統合された「Type Inference」は今後IonMonkeyから活用するための統合処理が進められていくと説明がある。FirefoxのJavaScriptエンジンはまだ高速化の余地を残しており、今後メジャーバージョンがリリースされる度にパフォーマンスが向上するとみられる。