Firefox web browser - Faster, more secure & customizable

Firefoxは、IE9・Chrome・Safari・OperaがJavaScript性能で繰り広げる高速化技術競争で押され気味だ。JavaScriptを使うWebアプリケーションやWebサービス、サイトはますます増えている。JavaScriptエンジンの性能はそのままブラウザの快適さに直結している状況だ。しかし、Mozillaも何もしていないわけではない。こうした状況を覆すべく新しいJavaScriptエンジンの開発に着手しており、着実に成果を上げつつある。

採用している技術が複数あり、どれも似たような名前であるためどういった違いがあるのかわかりにくいかもしれない。それぞれの技術を次に簡単にまとめておく。

JavaScriptエンジン 内容
SpiderMonkey FirefoxのコアJavaScriptインタプリタエンジン。ここにTraceMonkeyおよびJaegerMonkeyという2つのJIT技術を併用して高速化を実現する。
TraceMonkey トレースタイプのJavaScript JITエンジン。極めて高速なネイティブコードを生成できるものの、適用範囲が狭いという問題がある。ネイティブコードの生成にはNanojitを使用。
JaegerMonkey メソッドタイプのJavaScript JITエンジン。広範囲に渡ってネイティブコードを生成可能。ただし、TraceMonkeyほど高速なコードは生成しない。ネイティブコードの生成にはNitroを使用。

MozillaはSpiderMonkey、TraceMonkey、JaegerMonkeyのすべての開発に取り組み、改善を続けている。特にこの数カ月、力を入れて開発してきたのがJaegerMonkeyだ。JaegerMonkeyは実行性能を全体的に引き上げることにつながり、競合ブラウザの性能に追いつくための要になる技術とみられている。今後はTraceMonkeyとJaegerMonkeyが連動して動作するための開発が取り組まれることになる。

MozillaのJavaScriptチームは開発しているJavaScriptエンジン(JaegarMoneky、TraceMonkey、SpiderMonkey)の性能を比較するためのベンチマーク結果をARE WE FAST YET?で定期的に公開している。ベンチマークはMac OS X (Mac mini)で実施され、開発中のJavaScriptエンジンとChromeおよびSafariのJavaScriptエンジンの比較結果が掲載されている。2日現在公開されているベンチマークからx86版とx64版を抜粋すると次のとおり。左がSunSpider、右がv8benchの結果になっている。

Firefox JavaScriptエンジン(x86)ベンチマーク結果 2010/09/02版 - ARE WE FAST YET?より抜粋

Firefox JavaScriptエンジン(x64)ベンチマーク結果 2010/09/02版 - ARE WE FAST YET?より抜粋

JaegarMonekyとTraceMonkeyの性能がコンスタントに高速化していることを確認できるほか、JaegarMonekyとTraceMonkeyを組み合わせた場合の性能がChromeおよびSafariに近づきつつあることを確認できる。ChromeもSafariもJavaScript実行性能の改善に取り組んでいるため、開発中のFirefox JavaScriptエンジンがChrome/Safariの性能に到達するにはまだ時間がかかるとみられる。Firefox 4でどこまで高速化が実現されるかまだ不透明だが、今までリリースされたFirefoxの中で最速のFirefoxになることは間違いなさそうだ。