V8 (движок JavaScript)

V8 — движок JavaScript с открытым исходным кодом, распространяемый по лицензии BSD. Разработан датским отделением компании Google.

V8 JavaScript Engine
Тип Движок JavaScript
Разработчик Google
Написана на C++[1] и JavaScript
Операционная система Android, Microsoft Windows, Mac OS X, FreeBSD, HP webOS[2][3] и Linux
Аппаратная платформа x86, ARM[4], MIPS[5]
Последняя версия 9.0 (17 марта 2021)
Состояние Активная разработка
Лицензия BSD
Сайт v8.dev
 Медиафайлы на Викискладе

Особенности V8

Разработка JavaScript-движка V8 началась в датском отделении Google в городе Орхусе. Ведущим разработчиком стал Ларс Бак. Основными проблемами, которые пришлось решать разработчикам в движке, стали производительность и масштабируемость[6]. Первая лабораторная версия движка появилась 3 июля 2008 года[7], а уже 2 сентября была официально представлена версия 0.2.5, вошедшая в первый публичный релиз Chromium[8].

Ларс Бак считал[9], что краеугольными камнями V8 являются:

  • Компиляция исходного кода JavaScript непосредственно в собственный машинный код, минуя стадию промежуточного байт-кода.
  • Эффективная система управления памятью, приводящая к быстрому объектному выделению и маленьким паузам сборки «мусора»[10].
    • V8 приостанавливает исполнение кода во время выполнения сборки «мусора».
    • Уменьшает влияние и воздействие приостановки приложения при сборке «мусора».
    • V8 может точно определять, где находятся в памяти объекты и указатели, что позволяет избежать утечки памяти при ложной идентификации объектов в качестве указателей.
  • Введение скрытых классов и встроенных кэшей, ускоряющих доступ к свойствам и вызовам функций.

V8 исполняет JavaScript-сценарии в особых «контекстах», которые по сути являются отдельными виртуальными машинами. Правда в одном процессе может работать только одна виртуальная машина, несмотря на возможность использования нескольких потоков[11]. В Chromium это обходится мультипроцессовой архитектурой, повышающей также стабильность и безопасность, реализуя таким образом механизм «песочницы»[12]. Таким образом, несмотря на динамическую природу JavaScript, разработчикам удалось применить методы, характерные для реализации классических объектно-ориентированных языков, такие как компиляция кода «на лету», внутреннее кэширование, точный процесс сборки мусора, снэпшоттинг при создании контекстов[6][11].

Движок V8 отличается от других движков (JScript, SpiderMonkey, JavaScriptCore, Nitro) высокой производительностью[13][14][15][16][17].

Продукты, использующие V8

Браузеры

  • Chromium — веб-браузер с открытым исходным кодом, на основе которого создаётся ряд браузеров, наиболее популярным из которых является Chrome — веб-браузер компании Google
  • Maxthon — веб-браузер со встроенным блокиратором рекламы, использующий два движка рендеринга: WebKit и Trident[18];
  • Браузер Android[19] — мобильный браузер, входящий в Android OS.

Операционные системы

  • Android — операционная система от Google, предназначенная для коммуникаторов, нетбуков и планшетов, V8 используется, начиная с Android Froyo.
  • HP webOS — операционная система от Hewlett-Packard для коммуникаторов, нетбуков и планшетов, движок V8 используется во встроенном браузере.
  • Google Chrome OS — операционная система от Google на базе проекта Chromium, ориентированная на облачные сервисы, движок является важным компонентом всей операционной системы.

См. также

Примечания

  1. The v8-js Open Source Project on Open Hub: Languages Page — 2006.
  2. Использование V8 в webOS Архивировано 24 июля 2010 года. (англ.)
  3. Обзор новой версии webOS 2.0 и встроенного браузера Архивная копия от 4 сентября 2010 на Wayback Machine (рус.)
  4. Поддержка архитектур
  5. Официальная поддержка с версии 3.8.2
  6. Ларс Бак в Санкт-Петербурге, 2009-12 (рус.)
  7. V8 JavaScript Engine initial export
  8. Запуск V8, Chromium и Google Chrome, 2008-09 (англ.)
  9. Обзор возможностей, 2008-09 (англ.)
  10. Эффективный сбор «мусора» (англ.)
  11. Обзор возможностей движка V8 на серверах (рус.)
  12. Обзор мультипроцессорной архитектуры (англ.)
  13. Design Elements (англ.)
  14. Speed test: Google Chrome beats Firefox, IE, Safari Архивная копия от 19 января 2012 на Wayback Machine (англ.)
  15. Быстрый запуск веб-приложений (рус.)
  16. Mozilla сравнивает производительность движков Архивная копия от 11 сентября 2010 на Wayback Machine (англ.)
  17. Проверить производительность движка JavaScript, используемого браузером, можно запустив тесты V8 Benchmark Suite Архивировано 4 марта 2013 года., SunSpider, Kraken Архивная копия от 1 июля 2020 на Wayback Machine
  18. http://www.maxthon.com/blog/maxthon-3-what-you-always-wanted-to-know/ We switched to Maxthon-modified version of Google’s open source V8 engine.
  19. Включение движка V8 в мобильный браузер Froyo Архивная копия от 1 января 2011 на Wayback Machine (недоступная ссылка с 23-11-2013 [3019 дней])

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.