MozillaFirefoxがJavaScriptのパフォーマンスを向上させる

Firefoxユーザーは、Firefox 83ブラウザーでJavaScriptのパフォーマンスが向上することを期待できます。これにより、SpiderMonkeyJavaScriptエンジンへのワープ更新がデフォルトで有効になります。

WarpBuilderとも呼ばれるWarpは、JiT(ジャストインタイム)コンパイラに変更を加えることで、応答性とメモリ使用量を改善し、ページの読み込みを高速化します。JiTの最適化は、CacheIRの単純な線形バイトコード形式、具体的にはベースライン層によって収集されたCacheIRデータのみに依存するように変更されました。ブラウザで活用されている新しいアーキテクチャは、より保守しやすく、SpiderMonkeyの追加の改善点を解き放つと説明されています。

Firefox 83は10月20日のベータ版で公開され、11月17日にリリースされる予定です。Warpは、Google Docsの読み込み時間が20%改善されるなど、SpiderMonkeyの以前の最適化JiTであるIonよりも高速であることが示されています。 NetflixやRedditなどの他のJavaScriptを多用するWebサイトも改善を示しています。

CacheIRに基づいてWarpを使用すると、IonBuilderで使用されるグローバル型推論データを追跡するために必要なエンジン全体のコードを削除できるため、速度が向上します。 IonBuilderとWarpBuilderはどちらも最適化JiTバックエンドで使用される中間表現であるIonMIRを生成しますが、IonBuilderにはWarpBuilderでは不要な多くの複雑なコードがありました。 Warpは、オフスレッドでより多くの作業を実行でき、再コンパイルが少なくて済みます。計画では、Warpの継続的な最適化が求められていますが、現在、一部の合成ベンチマークではIonよりも低速です。

Warpは、IonMonkey JiTのフロントエンド(MIR構築フェーズ)に取って代わりました。計画では、Firefox 85で発生する可能性が高い古いコードとアーキテクチャを削除する必要があります。その結果、パフォーマンスとメモリ使用量のさらなる改善が見込まれます。また、Mozillaは、JavaScriptを多用するワークロードにはまだ改善の余地があると考えているため、IonMonkeyJiTのバックエンドを段階的に最適化し続けます。また、Web開発者とMozillaがJavaScript関数のCacheIRデータを探索するためのツールも開発中です。