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

Молниеносно быстрое парсинг, часть 1: оптимизация сканнера

· 10 мин. чтения
Тун Верваст ([@tverwaes](https://twitter.com/tverwaes)), скандальный оптимизатор

Чтобы выполнить JavaScript-программу, исходный текст необходимо обработать, чтобы V8 мог его понять. V8 начинает с парсинга исходного текста в абстрактное синтаксическое дерево (AST), набор объектов, представляющих структуру программы. Это AST компилируется в байткод с помощью Ignition. Производительность этапов парсинга и компиляции важна: V8 не может выполнить код до завершения компиляции. В этой серии статей блога мы сосредоточимся на парсинге и работе, проделанной в V8, чтобы создать молниеносно быстрый парсер.

Релиз V8 версии v7.4

· 7 мин. чтения
Георг Нейс

Каждые шесть недель мы создаём новую ветку V8 в рамках нашего процесса выпуска. Каждая версия ветвится из Git master V8 непосредственно перед этапом Chrome Beta. Сегодня мы рады объявить о нашей новой ветке, V8 версия 7.4, которая находится в бета-версии до выпуска совместно с Chrome 74 Stable через несколько недель. V8 v7.4 наполнена множеством функций, ориентированных на разработчиков. Этот пост предоставляет предварительный обзор основных моментов в ожидании выпуска.

Без JIT в V8

· 3 мин. чтения
Якоб Грубер ([@schuay](https://twitter.com/schuay))

V8 версии 7.4 теперь поддерживает выполнение JavaScript без выделения исполняемой памяти во время выполнения.

В своей стандартной конфигурации V8 сильно зависит от возможности выделять и изменять исполняемую память во время выполнения. Например, оптимизирующий компилятор TurboFan создает машинный код для «горячих» функций JavaScript (JS) непосредственно перед выполнением, а большинство регулярных выражений JS компилируются в машинный код с помощью движка irregexp. Создание исполняемой памяти во время выполнения — одна из ключевых причин высокой скорости V8.

Релиз V8 версии 7.3

· 3 мин. чтения
Клеменс Бакес, мастер компиляции

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

Мусорный разговор: сборщик мусора Orinoco

· 12 мин. чтения
Питер «мусорщик» Маршалл ([@hooraybuffer](https://twitter.com/hooraybuffer))

За последние годы сборщик мусора (GC) в V8 сильно изменился. Проект Orinoco преобразовал последовательный сборщик мусора с полной остановкой мира в в основном параллельный и конкурентный сборщик с плановой обратной связью.

Релиз V8 версии 7.2

· 5 мин. чтения
Андреас Хаас, обработчик ловушек

Каждые шесть недель мы создаем новую ветвь V8 как часть нашего процесса релиза. Каждая версия ответвляется от главной ветки Git V8 сразу перед бета-этапом Chrome. Сегодня мы рады представить нашу новейшую ветвь, версию V8 7.2, которая находится в бета-версии до её релиза в стабильной версии Chrome 72 через несколько недель. V8 v7.2 содержит множество полезных функций для разработчиков. Этот пост предоставляет предварительный обзор некоторых ключевых моментов в преддверии релиза.

Ускорение spread-элементов

· 8 мин. чтения
Хай Дан и Георг Нейс

Во время своей трехмесячной стажировки в команде V8 Хай Дан работал над улучшением производительности [...array], [...string], [...set], [...map.keys()] и [...map.values()] (когда spread-элементы находятся в начале литерала массива). Он также сделал Array.from(iterable) намного быстрее. Эта статья объясняет некоторые подробности его изменений, которые включены в V8, начиная с версии v7.2.

Быстрее асинхронные функции и промисы

· 17 мин. чтения
Майя Армянова ([@Zmayski](https://twitter.com/Zmayski)), всегда-ожидающий предвосхититель, и Бенедикт Мойрер ([@bmeurer](https://twitter.com/bmeurer)), профессиональный гарантирующий производительность

Асинхронная обработка в JavaScript традиционно имела репутацию недостаточно быстрой. К тому же отладка живых JavaScript приложений — особенно серверов Node.js — является непростой задачей, особенно в случае асинхронного программирования. К счастью, времена меняются. В этой статье рассматриваются оптимизации асинхронных функций и промисов в V8 (и в некоторой степени в других движках JavaScript), а также описывается, как улучшился опыт отладки асинхронного кода.

Релиз V8 версии 7.1

· 3 мин. чтения
Штефан Херхут ([@herhut](https://twitter.com/herhut)), клонированный создатель клонов

Каждые шесть недель мы создаём новую ветку V8 в рамках нашего процесса релизов. Каждая версия разветвляется из основного репозитория Git V8 сразу перед стадией Beta Chrome. Сегодня мы рады представить нашу новейшую ветку, V8 версия 7.1, которая находится в стадии бета-тестирования до её выпуска вместе с Chrome 71 Stable через несколько недель. V8 v7.1 наполнен различными инструментами для разработчиков. В этом посте представлен обзор некоторых главных нововведений в ожидании релиза.

Релиз V8 v7.0

· 3 мин. чтения
Майкл Хаблих

Каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса релизов. Каждая версия разветвляется от главной ветки Git V8 прямо перед этапом бета-версии Chrome. Сегодня мы рады объявить о нашей новой ветке, V8 версия 7.0, которая находится в бета-версии до своего выпуска вместе со стабильной версией Chrome 70 через несколько недель. V8 v7.0 наполнена всевозможными инструментами для разработчиков. Этот пост предоставляет краткий обзор некоторых основных моментов в преддверии релиза.