Перейти к основному содержимому

Релиз V8 v5.5

· 3 мин. чтения
команда V8

Каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса релиза. Каждая версия ветвится от мастера Git репозитория V8 непосредственно перед этапом бета-версии Chrome. Сегодня мы рады анонсировать нашу новую ветку, V8 версии 5.5, которая будет находиться в бете до ее выпуска в составе стабильной версии Chrome 55 через несколько недель. V8 v5.5 содержит множество улучшений для разработчиков, и мы хотели бы представить вам некоторые из основных моментов в преддверии релиза.

Функции языка​

Асинхронные функции​

В версии v5.5 V8 поддерживает JavaScript ES2017 асинхронные функции, которые упрощают написание кода, использующего и создающего Promises. С помощью асинхронных функций ожидание разрешения Promise становится таким же простым, как написание await перед ним, и продолжение работы, как если бы значение было доступно синхронно — без необходимости в обратных вызовах. Ознакомьтесь с этой статьей для введения.

Вот пример функции, которая запрашивает URL и возвращает текст ответа, написанной в типичном асинхронном стиле на основе Promise.

function logFetch(url) {
return fetch(url)
.then(response => response.text())
.then(text => {
console.log(text);
}).catch(err => {
console.error('запрос не удался', err);
});
}

Вот тот же код, переписанный без использования обратных вызовов, с использованием асинхронных функций.

async function logFetch(url) {
try {
const response = await fetch(url);
console.log(await response.text());
} catch (err) {
console.log('запрос не удался', err);
}
}

Улучшения производительности​

V8 v5.5 предоставляет ряд ключевых улучшений в области использования памяти.

Память​

Потребление памяти - важный аспект в балансировке производительности виртуальной машины JavaScript. За последние несколько релизов команда V8 провела анализ и значительно уменьшила объем памяти, потребляемой несколькими веб-страницами, которые были определены как представляющие современные паттерны веб-разработки. V8 5.5 снижает общее потребление памяти в Chrome до 35% на устройствах с малым объемом памяти (по сравнению с V8 5.3 в Chrome 53) благодаря уменьшению размера heap V8 и использования памяти зоны. Другие сегменты устройств также выиграли от уменьшения памяти зон. Пожалуйста, ознакомьтесь с посвященным постом в блоге для детального обзора.

API V8​

Просмотрите наш краткий обзор изменений API. Этот документ регулярно обновляется через несколько недель после каждого крупного релиза.

Инспектор V8 мигрирован​

Инспектор V8 был перенесен из Chromium в V8. Теперь код инспектора полностью находится в репозитории V8.

Разработчики с активной копией репозитория V8 могут использовать git checkout -b 5.5 -t branch-heads/5.5 для экспериментов с новыми функциями в V8 5.5. В качестве альтернативы, вы можете подписаться на бета-канал Chrome и вскоре опробовать новые функции самостоятельно.