Релиз V8 v5.3
Примерно каждые шесть недель мы создаем новую ветку 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, в зависимости от архитектуры и теста.
API V8
Пожалуйста, ознакомьтесь с нашим резюме изменений API. Этот документ регулярно обновляется через несколько недель после каждого крупного релиза.
Разработчики с активной версией V8 могут использовать команду git checkout -b 5.3 -t branch-heads/5.3
, чтобы протестировать новые функции в V8 5.3. Альтернативно, вы можете подписаться на Beta канал Chrome и вскоре попробовать новые функции самостоятельно.