- 2023年のV8エンジンにおける印象的な改善成果の要約
- 新しい中間段階コンパイラの導入と、上位段階コンパイラ、ランタイム、ガベージコレクタの改善を通じて全体的な速度が向上
- JavaScriptとWebAssembly向けの新機能を追加し、WebAssemblyガベージコレクション(WasmGC)によってガベージコレクション型プログラミング言語を効率よくWebにもたらした
- 安全性向上のためにサンドボックス化インフラを改善し、V8に制御フロー完全性(CFI)を導入
Maglev: 新しい中間段階最適化コンパイラ
- 新しい最適化コンパイラMaglevを導入し、SparkplugとTurboFanの間で動作
- MaglevはSparkplugより約20倍遅くコードを生成するが、TurboFanよりは10〜100倍速くコードを生成
- JetStreamで8.2%、Speedometerで6%の性能向上を確認
- Maglevの高速なコンパイル速度とTurboFanへの依存度低下による省エネルギー効果
Turboshaft: 上位段階最適化コンパイラの新しい構造
- 上位段階最適化コンパイラTurboFanの新しい内部構造Turboshaftを導入
- 新しい最適化の追加と、より高速なコンパイルが可能
- Chrome 120からCPU非依存のバックエンド段階はすべてTurboshaftを使用し、以前より約2倍高速にコンパイル
より高速なHTMLパーサー
- HTML解析に要する時間を減らすため、Blinkにより高速なHTMLパーサーを追加
- Speedometerスコアが3.4%向上
- WebKitプロジェクトがこの変更を即座に統合
より高速なDOM割り当て
- DOM面での投資と最適化
- Oilpanアロケータにページプールを追加し、カーネルとの往復コストを削減
- 圧縮ポインタと非圧縮ポインタのサポート、およびBlinkで高頻度フィールドの圧縮を回避
- 頻繁に割り当てられるクラスのoilpanizationにより割り当て処理を3倍高速化し、DOM中心のベンチマーク性能を改善
新しいJavaScript機能
- 新たに標準化されたJavaScript機能を展開。
- resizable ArrayBuffers、ArrayBuffer transfer、String
isWellFormed と toWellFormed、RegExp v フラグ、source付き JSON.parse、Array grouping、Promise.withResolvers、Array.fromAsync などを追加
- Iteratorヘルパー機能はWeb互換性の問題により一時的に撤回され、後日再展開予定
- ES6+ JavaScriptコードの性能向上のため、一部の不要な一時デッドゾーン検査を省略
WebAssemblyアップデート
- Wasm向けの新機能と性能向上
- マルチメモリ、末尾呼び出し、緩和されたSIMDサポートによって性能向上
- Memory64の実装を完了し、提案がステージ4に到達すれば展開予定
- 例外処理提案の最新アップデートを反映し、以前の形式もサポート
- JSPIへの投資により、Web上でより大規模なクラスのアプリケーションを有効化
WebAssemblyガベージコレクション
- WasmGCの展開により、V8の既存ガベージコレクタで管理されるオブジェクトと配列を割り当て可能に
- Java、Kotlin、Dartなどのガベージコレクション言語で書かれたアプリケーションをWasmにコンパイルする際、JavaScriptにコンパイルする場合より約2倍高速に実行
セキュリティ
- サンドボックス化、ファジング、CFIが今年の主要なセキュリティテーマ
- サンドボックス化インフラの構築、ファジングインフラへの投資、言語カバレッジの改善
- CFIアーキテクチャの基盤を整備し、さまざまなプラットフォームで実装可能に
the_hole を巡る広く使われてきたエクスプロイト手法を緩和し、V8CTF形式の新しいエクスプロイト報奨金プログラムを開始
結論
- 小さな性能向上プロジェクト群の組み合わせ効果により大きな成果を実現
- 2023年のV8性能向上を示すベンチマークスコアは、JetStreamで14%、Speedometerで34%成長
- V8は今やより高速で安全になり、高速でダイナミックなWebへの旅はまだ始まったばかり
- V8チームは、すべての人に高速で安全、そして素晴らしいWebブラウジング体験を願っている
まだコメントはありません。