Apple の Safari で使用されている WebKit の JavaScript インタープリタである Nitro は、Apple がブラウザと Google Chrome の V8 および Mozilla Firefox の SpiderMonkey エンジンとの間の速度の差を埋めようとしていることから、大幅に高速化される予定です。
今日の Web アプリケーションの大部分は、インタラクティブ性やその他の目的で JavaScript を使用しているため、ブラウザの JavaScript パフォーマンスの向上は通常、エンドユーザー レベルにまで波及し、よりスムーズな Web ブラウジングを実現します。
MacRumors の編集者 Eric Slivka 氏は InfoWorld の記事を紹介し、Safari での JavaScript パフォーマンスの向上に関する Apple の取り組みは、Apple が開発し、後にオープンソース化された Web レンダリング エンジンである WebKit の最新ビルドにいわゆるアクセラレータ アップグレードを組み込んだことに端を発していると説明しています。
具体的には、Apple は WebKit の Nitro JavaScript インタープリタ (JavaScriptCore とも呼ばれる) のいわゆる FTLJIT アップグレードを検討しています。
基本的に Apple 独自の JavaScript インタープリタである FTLJIT は、ジャストインタイム コンパイルと呼ばれる一般的な最適化手法に基づいています。この手法では、人間が読める JavaScript コマンドを実行時にマシン コードに変換し、JavaScript をネイティブ コードとほぼ同じ速度で実行します。
InfoWorld は次のように説明しています。
FTLJIT はまだ実験段階とみなされているため、WebKit の OS X ポートではデフォルトで利用可能になっていますが、実際にはまだ有効になっていません。コマンドライン フラグを使用して有効にする必要があります。
JavaScript ベンチマーク Web サイト AreWeFastYet では、64 ビット OS X では FTLJIT が Chrome よりも著しく高速であることがわかっていますが、同じベンチマークの asm.js バージョンを実行している Firefox は「依然として一貫して WebKit に勝っています」。
FTLJIT が他の製品よりさらに目立つようになる 1 つの特徴は、[Mozilla] の asm.js 用に特に最適化されていない JavaScript コードをいかにうまく実行できるかという点です。
すべての JavaScript エンジンは asm.js コードを実行しますが、asm.js 固有の最適化を採用しているのは Mozilla の SpiderMonkey のみであり、現時点では他のブラウザー メーカーは Mozilla の先例に従うことを選択していません。
FTLJIT は現在試作段階であるため、この技術が Safari のコンシューマーバージョンにいつ搭載されるかについては何も発表されていません。
iOSで使用されているモバイル版SafariにはNitro JavaScriptインタープリタが含まれていますが、開発者が利用できる埋め込みブラウザは含まれていません。とはいえ、FTLJITによる高速化は、Macに加えて、iPhone、iPod touch、iPadデバイスにも適用されると期待しています。
おそらく FTLJIT は OS X 10.10 と iOS 8 に導入されるのでしょうか?
6月2日が待ちきれません…