WebKit開発チームが18日 (米国時間)、オープンソースのWebブラウザエンジン「WebKit」に新しいJavaScriptエンジン「SquirrelFish Extreme (SFX)」を搭載したと発表した。プログラムは日々アップデートされるバイナリパッケージ (Nightly Build) に反映され、対応プラットフォームのMac OS XおよびWindowsで試すことができる。
SquirrelFish Extremeは、6月にリリースされたWebKitのJavaScriptエンジン「SquirrelFish」の改良版。同開発チームのブログ「Surfin' Safari」に18日付で投稿された記事によれば、WebKit 3.0 / Safari 3.0と比較して約11.8倍、従来のSquirrelFishと比較しても約2.1倍というスコアを実現するという (同チーム調べ)。
高速化に成功した要因としては、JavaScriptから生成するバイトコードの最適化が挙げられている。SquirrelFish Extremeでは、最適化にポリモーフィック型インラインキャッシュを使用、生成したオブジェクトに構造識別子を割り当て再利用を図ることで、特にプロパティアクセスがボトルネックとなるような性能テストにおいて大幅な速度改善が実現されたという。
JITコンパイラにも改良が加えられ、コンテクストスレッドインタプリタの技術が導入された。バイトコードは1オぺレーションコードごとにネイティブコードへと変換、複雑なオペレーションコードについては言語ランタイムの関数を呼びだすことで、従来のネイティブコード変換を伴わない方式 (ダイレクトスレッド技術) 以上のパフォーマンスを実現するという。ほかにも、正規表現のマッチングを高速化するためのJIT基盤を採用するなどの改良が加えられている。
現行Safariの3.4倍速い新JavaScriptエンジン「SquirrelFish Extreme」 (画像は「Surfin' Safari」から転載) |