Оглавление
V8 (движок JavaScript)
-
История и разработка V8
- V8 – это JavaScript и WebAssembly движок от Google, используемый в браузере Chrome.
- Создан в 2008 году Ларсом Баком, назван в честь автомобильного двигателя.
- Изначально был быстрее других браузеров, но со временем его скорость была улучшена.
-
Архитектура и оптимизация
- Основан на ассемблере Strongtalk, в 2010 году добавлена новая инфраструктура компиляции Crankshaft.
- В 2015 году добавлен проект ТРДД для повышения производительности сложных рабочих нагрузок.
- Вдохновлен Java Hotspot, имеет новые исполнительные конвейеры.
-
Поддержка WebAssembly и Ignition
- Поддержка WebAssembly началась в 2015 году.
- В 2016 году добавлен интерпретатор Ignition для сокращения использования памяти на Android.
- В 2017 году выпущен новый компилятор, включающий Ignition и TurboFan.
-
Изменения в компиляции и профилировании
- С версии 5.9 отказались от использования Full-codegen и Crankshaft, так как они не успевали за новыми возможностями JavaScript.
- В 2021 году представлен новый многоуровневый конвейер компиляции SparkPlug.
- В 2023 году добавлен компилятор Maglev SSA для оптимизации менее часто запускаемых циклов.
-
Дизайн и оптимизация
- Сначала генерируется абстрактное синтаксическое дерево, затем Ignition генерирует байт-код, а TurboFan компилирует его в машинный код.
- Компилируется “точно в срок”, оптимизируется динамически на основе профиля выполнения.
- Используются методы оптимизации, включая встраивание и кэширование.
-
Использование и портирование
- Компилируется для различных архитектур, включая x86, ARM, MIPS, PowerPC и IBM ESA/390.
- Используется в различных браузерах, серверных базах данных, средах выполнения и мобильных приложениях.
-
Дополнительные ресурсы
- Ссылки на официальный веб-сайт и другие ресурсы доступны в статье.
Полный текст статьи: