Firefox web browser - Faster, more secure & customizable

Firefox開発版から「TraceMonkey」のコードが削除されたことが報告された。TraceMonkeyはJavaScriptのトレースJITコンパイラ。10月末にはすでに無効化されていたが、今回ついに削除となった。6万7,000行に及ぶTraceMonkeyのコードはFirefoxから削除され、長きに渡る役割を終えたことになる。

Firefoxには4つのJavaScriptエンジンがある。JavaScriptインタプリタである「SpiderMonkey」、トレースJITコンパイラである「TraceMonkey」、メソッド型のJITコンパイラである「JaegerMonkey」、そして現在開発を進めている最新のJITコンパイラ「IonMonkey」だ。高速化技術として最初の導入されたJITがTraceMonkeyだった。TraceMonkeyは特定のコードに対しては優れた高速化を実現したが、適用範囲が狭いという問題を抱えていた。

Krakenベンチマーク - ARE WE FAST YET?より抜粋(11月24日版)

Sunspiderベンチマーク - ARE WE FAST YET?より抜粋(11月24日版)

V8ベンチマーク - ARE WE FAST YET?より抜粋(11月24日版)

ベンチマークの凡例。使用されてるOSはMac OS X 32ビット版。

JaegerMonkeyは広範囲に渡ってネイティブコードへ変更できるJIT。これまではJaegerMonkeyとTraceMonekyを組み合わせたJIT構成を採用してきたが、JaegerMonkey+TraceMonekyeよりも、JaegerMonkey+型推論エンジンの方が性能を発揮できる状況になった。このため、TraceMonkeyはその役割を終えたと判断され、今回の削除につながっている。

ただし、すでにJaegarMonkey+型推論エンジンでも、改善できないいくつかのパターンがあることが分かっており、こうした部分を改善するJITとしてIonMonkeyの開発が進められている。直近では型推論エンジンを取り込んだJaegerMonkeyが主力として使用され、さらに先の未来にはIonMonkeyがこれに替わる存在になるものとみられる。