Релиз V8 v5.5
Каждые шесть недель мы создаем новую ветку 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 и вскоре опробовать новые функции самостоятельно.