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

Улучшенное кэширование кода

· 4 мин. чтения
Мифри Алле, главный специалист по кэшированию кода

V8 использует кэширование кода для кэширования сгенерированного кода часто используемых скриптов. Начиная с Chrome 66, мы кэшируем больше кода, создавая кэш после выполнения верхнего уровня. Это приводит к сокращению времени анализа и компиляции на 20–40% при первоначальной загрузке.

Релиз V8 версии v6.6

· 7 мин. чтения
Команда V8

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

Фоновая компиляция

· 4 мин. чтения
[Росс МакИлрой](https://twitter.com/rossmcilroy), защитник главного потока

TL;DR: Начиная с Chrome 66, V8 компилирует исходный код JavaScript в фоновом потоке, сокращая время, затрачиваемое на компиляцию в главном потоке, на 5–20% на типичных веб-сайтах.

Предыстория

Начиная с версии 41, Chrome поддерживает парсинг исходных файлов JavaScript в фоновом потоке через API V8 StreamedSource. Это позволяет V8 начинать парсинг исходного кода JavaScript, как только Chrome загрузил первый фрагмент файла из сети, и продолжать парсинг параллельно с потоковой передачей файла через сеть в Chrome. Это может значительно улучшить время загрузки, так как V8 может почти завершить парсинг JavaScript к моменту завершения загрузки файла.

Трассировка от JS к DOM и обратно

· 4 мин. чтения
Улан Дегенбаев, Алексей Филиппов, Михаэль Липпаутц и Ханнес Паер — содружество DOM

Отладка утечек памяти в Chrome 66 стала намного проще. В инструментах разработчика Chrome теперь можно трассировать и создавать снимки C++ DOM объектов, а также отображать все достижимые DOM объекты из JavaScript с их ссылками. Эта функция является одним из преимуществ нового механизма трассировки C++ сборщика мусора V8.

Ленивая десериализация

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

TL;DR: Ленивая десериализация была недавно включена по умолчанию в V8 v6.4, снижая потребление памяти V8 в среднем на более чем 500 КБ на вкладку браузера. Читайте дальше, чтобы узнать больше!

Введение в функции снапшотов V8

Но сначала давайте отступим назад и посмотрим, как V8 использует снапшоты памяти для ускорения создания новых изолятов (что примерно соответствует вкладке в браузере Chrome). Мой коллега Ян Гуо дал хороший обзор на эту тему в своей статье о настраиваемых снапшотах запуска:

V8 релиз v6.5

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

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

Оптимизация хеш-таблиц: скрытие хеш-кода

· 5 мин. чтения
[Сатья Гунасекеран](https://twitter.com/_gsathya), хранитель хеш-кодов

ECMAScript 2015 ввел несколько новых структур данных, таких как Map, Set, WeakSet и WeakMap, которые используют хеш-таблицы под капотом. Этот пост описывает последние улучшения в том, как V8 v6.3+ хранит ключи в хеш-таблицах.

Chrome приветствует Speedometer 2.0!

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

С момента первого выпуска Speedometer 1.0 в 2014 году команды Blink и V8 использовали этот тест как показатель реального использования популярных JavaScript-фреймворков и достигли значительных улучшений скорости. Мы независимо подтвердили, что эти улучшения приводят к реальным преимуществам для пользователей, измеряя время загрузки популярных веб-сайтов, и обнаружили, что улучшения в скорости загрузки также повлияли на увеличение оценки Speedometer.

Релиз V8 v6.4

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

Каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса выпуска. Каждая версия ветвится от основной Git-ветки V8 прямо перед этапом Beta Chrome. Сегодня мы рады объявить о нашей новейшей ветке, версии V8 6.4, которая находится в бета-версии до своего выпуска вместе со стабильной версией Chrome 64 через несколько недель. V8 v6.4 наполнен разнообразными полезными улучшениями для разработчиков. В этом сообщении представлен предварительный обзор некоторых ключевых моментов в преддверии релиза.

Покрытие кода JavaScript

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

Покрытие кода предоставляет информацию о том, были ли определённые части приложения выполнены и, при необходимости, как часто. Оно обычно используется для определения того, насколько тщательно тестовый набор проверяет конкретную кодовую базу.

Зачем это полезно?

Как разработчик JavaScript, вы часто можете оказаться в ситуации, когда покрытие кода может быть полезным. Например:

  • Интересует качество вашего набора тестов? Рефакторите большой проект с наследием? Покрытие кода может показать вам, какие части вашей кодовой базы покрыты.
  • Хотите быстро узнать, достигнута ли определённая часть кодовой базы? Вместо того, чтобы инструментировать с помощью console.log для отладки в стиле printf или вручную проходить по коду, покрытие кода может отображать информацию в реальном времени о том, какие части вашего приложения были выполнены.
  • Или, возможно, вы оптимизируете скорость и хотите знать, на каких частях сосредоточиться? Счётчики выполнения могут указать горячие функции и циклы.