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

V8 версия v7.7

· 3 мин. чтения
Mathias Bynens ([@mathias](https://twitter.com/mathias)), ленивый составитель заметок о выпуске

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

Emscripten и LLVM WebAssembly backend

· 12 мин. чтения
Алон Закай

WebAssembly обычно компилируется из исходного языка, что означает, что разработчикам нужны инструменты для его использования. По этой причине команда V8 работает над соответствующими open-source проектами, такими как LLVM, Emscripten, Binaryen и WABT. В этом посте описана часть работы, которая выполнена над Emscripten и LLVM, и которая скоро позволит Emscripten по умолчанию перейти на LLVM WebAssembly backend — пожалуйста, протестируйте его и сообщите о любых проблемах!

Стоимость JavaScript в 2019 году

· 12 мин. чтения
Эдди Османи ([@addyosmani](https://twitter.com/addyosmani)), уборщик JavaScript, и Маттиас Биненс ([@mathias](https://twitter.com/mathias)), освободитель главного потока
примечание

Примечание: Если вам больше нравится смотреть презентацию, чем читать статьи, наслаждайтесь видео ниже! Если нет, пропустите видео и продолжайте читать.

«Стоимость JavaScript», представленная Эдди Османи на конференции #PerfMatters в 2019 году.

V8 выпуск v7.6

· 5 мин. чтения
Адам Кляйн

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

Кэширование кода для разработчиков WebAssembly

· 9 мин. чтения
[Билл Бадж](https://twitter.com/billb), делая кэширование более выгодным

Среди разработчиков есть поговорка, что самый быстрый код — это код, который не выполняется. Аналогично, самый быстрый компиляционный код — это код, который не нужно компилировать. Кэширование кода WebAssembly — это новая оптимизация в Chrome и V8, которая старается избежать компиляции кода, кэшируя скомпилированный нативный код. Мы писали о том, как Chrome и V8 кэшируют JavaScript-код в прошлом, а также о лучших практиках использования этой оптимизации. В этом посте мы опишем, как работает система кэширования кода WebAssembly в Chrome и как разработчики могут использовать её для ускорения загрузки приложений с большими модулями WebAssembly.

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

· 4 мин. чтения
Дэн Элфик, бич устаревшего кода

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

Более быстрые и функциональные API интернационализации

· 5 мин. чтения
[சத்யா குணசேகரன் (Сатья Гунасекаран)](https://twitter.com/_gsathya)

Спецификация API интернационализации ECMAScript (ECMA-402, или Intl) предоставляет ключевые функции, зависящие от локали, такие как форматирование дат, чисел, выбор формы множественного числа и сортировка. Команды Chrome V8 и Google Internationalization работали над добавлением новых функций в реализацию ECMA-402 в V8, при этом устраняя технические долги и улучшая производительность и совместимость с другими браузерами.

Год с Spectre: взгляд команды V8

· 9 мин. чтения
Бен Л. Титцер и Ярослав Шевчик

3 января 2018 года Google Project Zero и другие раскрыли первые три уязвимости нового класса, которые затрагивают процессоры с механизмом спекулятивного исполнения, названные Spectre и Meltdown. Используя спекулятивное исполнение процессоров, злоумышленник мог временно обходить как явные, так и неявные проверки безопасности в коде, которые предотвращают чтение несанкционированных данных в памяти. Хотя процессорная спекуляция была задумана как микроархитектурная деталь, невидимая на уровне архитектуры, специально разработанные программы могли читать несанкционированную информацию во время спекуляции и раскрывать её через побочные каналы, такие как время выполнения фрагмента программы.

Молниеносно быстрое разбор, часть 2: ленивый разбор

· 14 мин. чтения
Тун Вервеест ([@tverwaes](https://twitter.com/tverwaes)) и Марья Хёльтта ([@marjakh](https://twitter.com/marjakh)), упрощенные разборщики

Это вторая часть нашей серии, объясняющей, как V8 разбирает JavaScript максимально быстро. Первая часть объясняла, как мы сделали сканер V8 быстрым.

Разбор — это этап, на котором исходный код преобразуется в промежуточное представление для последующего использования компилятором (в V8 — это компилятор байт-кода Ignition). Разбор и компиляция происходят на критическом пути запуска веб-страницы, при этом не все функции, отправленные в браузер, немедленно требуются при старте. Даже если разработчики могут откладывать такой код с помощью асинхронного и отложенного выполнения скриптов, это не всегда осуществимо. Кроме того, многие веб-страницы содержат код, который используется только для определенных функций, которые пользователь может вообще не запустить в течение работы страницы.

Кэширование кода для разработчиков JavaScript

· 14 мин. чтения
[Лешек Свирски](https://twitter.com/leszekswirski), разрушитель кэша

Кэширование кода (также известное как кэширование байткода) представляет собой важную оптимизацию в браузерах. Оно сокращает время запуска часто посещаемых веб-сайтов путем кэширования результата анализа и компиляции. Большинство популярных браузеров реализуют различные формы кэширования кода, и Chrome не является исключением. На самом деле, мы писали и рассказывали о том, как Chrome и V8 сохраняют скомпилированный код в кэше.