メインコンテンツまでスキップ

V8リリース v5.5

· 約3分
V8チーム

私たちは、リリースプロセスの一環として、6週間ごとにV8の新しいブランチを作成しています。各バージョンは、Chromeのベータマイルストーンの直前にV8のGitマスターからブランチが作成されます。本日、最新のブランチであるV8バージョン5.5を発表できることを嬉しく思います。このバージョンは、数週間後にChrome 55の安定版とともにリリースされるまでベータ版となります。V8 v5.5は、開発者に向けたいろいろな新機能が満載なので、リリースに先立ちいくつかのハイライトをご紹介します。

言語機能

Async関数

V5.5では、V8はJavaScript ES2017のasync関数を提供します。これにより、Promiseを使用および作成するコードを書くのが簡単になります。async関数を使用すると、Promiseの解決を待つのが簡単になり、awaitを記述して同期的に利用可能な値として進むだけです - コールバックは必要ありません。詳しくはこの記事をご覧ください。

以下は、URLを取得してレスポンスのテキストを返す例の関数で、一般的な非同期、Promiseベースのスタイルで書かれています。

function logFetch(url) {
return fetch(url)
.then(response => response.text())
.then(text => {
console.log(text);
}).catch(err => {
console.error('fetch failed', err);
});
}

以下は、async関数を使用してコールバックを削除した同じコードです。

async function logFetch(url) {
try {
const response = await fetch(url);
console.log(await response.text());
} catch (err) {
console.log('fetch failed', err);
}
}

パフォーマンスの向上

V8 v5.5は、メモリフットプリントにおいていくつかの重要な改善を提供します。

メモリ

メモリ消費は、JavaScript仮想マシンのパフォーマンスのトレードオフにおいて重要な要素です。過去数リリースにわたり、V8チームは現代のウェブ開発パターンを代表するいくつかのウェブサイトを分析し、メモリフットプリントを大幅に削減してきました。V8 5.5は、V8ヒープサイズとゾーンメモリ使用量の削減により、低メモリデバイスではChrome全体のメモリ消費量を最大35%削減します(Chrome 53のV8 5.3と比較)。他のデバイスセグメントでもゾーンメモリ削減の恩恵を受けます。詳しくは専用ブログ記事をご覧ください。

V8 API

API変更の概要をご覧ください。このドキュメントは、各主要リリース後数週間経ってから定期的に更新されます。

V8インスペクターの移行

V8インスペクターはChromiumからV8に移行されました。このインスペクターコードは現在、V8リポジトリに完全に含まれています。

アクティブなV8チェックアウトを持つ開発者は、git checkout -b 5.5 -t branch-heads/5.5を使用してV8 5.5の新機能を試すことができます。または、Chromeのベータチャンネルを購読し、間もなく新機能を自分で試すことができます。