V8 リリース v5.3
約6週間ごとに、新しいV8のブランチを作成します(リリースプロセスの一環)。各バージョンは、Chromeがベータ版のマイルストーンに向けてブランチされる直前にV8のGitマスターからブランチされます。本日、最新のブランチであるV8 バージョン 5.3を発表できることを嬉しく思います。このバージョンはChrome 53安定版と連携してリリースされるまでベータ版になります。V8 v5.3には開発者向けの便利な機能がたくさん含まれており、数週間後のリリースに先立ってそのハイライトをご紹介します。
メモリ
新しいIgnitionインタプリタ
Ignition、V8の新しいインタプリタは機能が完成しており、Chrome 53ではメモリの少ないAndroidデバイスで有効になります。このインタプリタはJITコードの即時メモリ節約をもたらし、将来のコード実行時のより高速なスタートアップの最適化を可能にします。IgnitionはV8の既存の最適化コンパイラ(TurboFanとCrankshaft)と連携して「ホット」コードをピーク性能に最適化することを保証します。我々は継続的にインタプリタ性能を改善しており、近いうちにモバイルおよびデスクトップのすべてのプラットフォームでIgnitionを有効にすることを目指しています。Ignitionの設計、アーキテクチャ、および性能向上についての詳細は近日中のブログ投稿をご覧ください。埋め込み版V8は、フラグ--ignition
を使ってIgnitionインタプリタを有効にすることができます。
ジャンクの削減
V8 v5.3にはアプリケーションのジャンクとガベージコレクション時間を減らすためのさまざまな変更が含まれています。これらの変更には以下が含まれます:
- 外部メモリを処理する時間を短縮するための弱いグローバルハンドルの最適化
- 避難ジャンクを減らすための完全なガベージコレクション時のヒープ統一
- ガベージコレクションマーキングフェーズへのV8のブラックアロケーション追加の最適化
これらの改善により、一連の人気Webページを閲覧する際に完全なガベージコレクションの停止時間が約25%減少しました。ジャンク削減の最近のガベージコレクション最適化の詳細については、ブログ記事「ジャンクバスターズ」前編と後編をご覧ください。
パフォーマンス
ページの起動時間の改善
V8チームは最近、25の実際のウェブサイトページの読み込み(Facebook、Reddit、Wikipedia、Instagramなどの人気サイトを含む)に対するパフォーマンス改善を追跡し始めました。V8 v5.1(Chrome 51で4月に測定)とV8 v5.3(最近のChrome Canary 53で測定)の間で、測定されたWebサイト全体で約7%の起動時間の改善が見られました。これらの改善はSpeedometerベンチマークでの類似の成果を反映しており、SpeedometerがV8 v5.3で14%速く実行されました。新しいテストハーネス、ランタイム改善、およびV8がページ読み込み中に費やす時間の内訳分析についての詳細は、起動性能に関する近日中のブログ記事でご確認ください。
ES2015 Promise
のパフォーマンス
Bluebird ES2015 Promise
ベンチマークスイート上でのV8のパフォーマンスは、V8 v5.3で20〜40%改善しました。これはアーキテクチャおよびベンチマークにより異なります。
V8 API
API変更の概要をご覧ください。このドキュメントは各主要リリースの数週間後に定期的に更新されます。
アクティブなV8チェックアウトを持つ開発者は、git checkout -b 5.3 -t branch-heads/5.3
を使用してV8 5.3の新機能を試すことができます。あるいは、Chromeのベータチャンネルに登録して、間もなく新機能を試すことができます。