Safari - Browse the web in smarter, more powerful ways.

WebKit開発チームは5月13日(米国時間)、「[LLVMdev] WebKit + LLVM」においてWebKitのJavaScript処理系に新しくFTL JIT(Fourth Tier LLVM Just-In-Time Compier; 第4段階目のJITコンパイラ)と呼ばれる高速化機能をデフォルトで有効化したと伝えた。次にリリースされるMac OS XやiOSのSafariから有効になる見通しで、JavaScriptで開発されたWebアプリケーションの実行速度がさらに高速化するものとみられる。

SafariのレンダリングエンジンであるWebKitはこれまでJavaScriptの実行に関して3段階の構造(3段階アーキテクチャ)を採用していた。LLInt、Baseline JIT、DFG JITというもので、即座に終了する処理に関しては簡単なJIT処理を、より長く実行するものに関してはより深く最適化をかけるという構造になっている。WebKitの開発チームはさらに処理を高速化するための開発を続けてきたが、こうした取り組みが既存のAOT(Ahead-Of-Time)コンパイラにおける取り組みに類似していることを指摘。このまま車輪の再開発を進めるよりは既存の実装を活用した方がよいとして重複する取り組みを廃止し、代わりにLLVMをベースとした第4のJITの導入を実施したと説明している。

LLVMは比較的新しいコンパイラアーキテクチャ。構造が整理されておりさまざまなプログラミング言語からその最適化機能を活用できるという特徴がある。WebKit開発チームはLLVMの最適化機能をJavaScriptに適用することで、これまでCやC++のコンパイラで利用されてきた最適化機能をJavaScriptに対しても適用できるようになったと説明している。ベンチマークの結果、FTL JITで最適化されたコードは第3段目のJITコンパイラであるCFG JITよりも35%ほど高速なコードを生成できるとしておりその効果が指摘されている。

WebKit開発チームはこれはLLVM統合による性能向上の最初の段階であるとし、今後さらにLLVMの機能を使って最適化できる処理を増やし、JavaScriptアプリケーションの高速化につなげていくとしている。