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

Релиз V8 v5.3

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

Примерно каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса релизов. Каждая версия создается из главной ветки Git V8 сразу перед созданием ветки Chrome для этапа Chrome Beta. Сегодня мы рады объявить о создании нашей новой ветки, версии V8 5.3, которая будет находиться в beta-версии до выпуска в стабильной версии Chrome 53. V8 v5.3 наполнен множеством улучшений для разработчиков, поэтому мы хотели бы дать вам предварительный обзор некоторых ключевых моментов в ожидании релиза через несколько недель.

Память

Новый интерпретатор Ignition

Ignition, новый интерпретатор V8, полностью завершен и будет включен в Chrome 53 для устройств Android с низким уровнем памяти. Интерпретатор обеспечивает немедленную экономию памяти для JIT-компилированного кода и позволит V8 выполнять дальнейшие оптимизации для ускорения запуска при выполнении кода. Ignition работает совместно с существующими оптимизирующими компиляторами V8 (TurboFan и Crankshaft), чтобы гарантировать, что «горячий» код все еще оптимизирован для максимальной производительности. Мы продолжаем улучшать производительность интерпретатора и надеемся вскоре включить Ignition на всех платформах, как мобильных, так и настольных. Следите за предстоящим постом в блоге для получения дополнительной информации о дизайне, архитектуре и приросте производительности Ignition. Встроенные версии V8 могут включить интерпретатор Ignition с использованием флага --ignition.

Сокращение задержек (jank)

V8 v5.3 включает различные изменения для сокращения задержек в приложении и времени сбора мусора. Эти изменения включают:

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

Вместе эти улучшения сокращают время приостановки полного сбора мусора примерно на 25%, измеренное во время просмотра популярных веб-страниц. Для получения более подробной информации о недавних оптимизациях сбора мусора для сокращения задержек, смотрите посты в блоге «Jank Busters» Часть 1 и Часть 2.

Производительность

Улучшение времени запуска страниц

Команда V8 недавно начала отслеживать улучшения производительности на основе загрузки 25 реальных веб-страниц (включая популярные сайты, такие как Facebook, Reddit, Wikipedia и Instagram). Между V8 v5.1 (измерено в Chrome 51 в апреле) и V8 v5.3 (измерено в недавней версии Chrome Canary 53) мы улучшили время запуска в среднем по измеренным сайтам примерно на 7%. Эти улучшения загрузки реальных веб-сайтов отражали аналогичные приросты на тесте Speedometer, который работал на 14% быстрее в V8 v5.3. Для получения дополнительных деталей о нашем новом тестирующем окружении, улучшениях времени выполнения и анализе того, как V8 использует время при загрузке страниц, смотрите наш предстоящий пост в блоге о производительности запуска.

Производительность ES2015 Promise

Производительность V8 на тестовом наборе Bluebird ES2015 Promise улучшилась на 20–40% в V8 v5.3, в зависимости от архитектуры и теста.

Производительность V8 Promise со временем на Nexus 5x

API V8

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

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