Firefox web browser - Faster, more secure & customizable

The Baseline Compiler Has Landed」において、Firefoxナイトリー版にベースラインコンパイラ(Baseline Compiler)と呼ばれる新しいJavaScript JITが追加されたことが紹介された。JavaScriptの実行速度が向上するほか、今後の処理速度向上も期待できる。

Firefoxは次の順序でJavaScriptを実行している。

  1. JavaScriptインタプリタであるSpiderMonkeyで実行
  2. 繰り返し実行されるようなコードがあればJaegerMonkey JITでコンパイルする
  3. さらに繰り返し実行されるようなコードがあればIonMonkey JITでコンパイルする

JaegerMonkeyは平均的に高速なコードを生成し、IonMonkeyはコンパイル時間はかかるがさらに高速なコードが生成するという特徴がある。

今回新しく導入されたベースラインコンパイラはJaegerMonkeyの部分に相当する。JaegerMonkeyはもともとIonMonkeyの前段階のJITとして想定されたものではないため、2.と3.の間で処理に無駄が発生している。ベースラインコンパイラは最終的にIonMonkeyでコンパイルを実行することを前提にして無駄な処理や構造を省いたコンパイラ。

Firefoxは先月、別のアプローチからOdinMonkeyと呼ばれるJavaScript処理技術をナイトリー版へ導入しており、JavaScript実行速度の向上に積極的に取り組んでいる。