V8 (движок JavaScript)

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Bezik (обсуждение | вклад) в 14:57, 6 марта 2017 (оформление). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
V8 JavaScript Engine
Логотип программы V8 JavaScript Engine
Тип Движок JavaScript
Разработчик Google Inc.
Написана на C++, JavaScript
Операционные системы Android, Microsoft Windows, Mac OS X, FreeBSD, HP webOS[1][2] и Linux
Аппаратные платформы x86, ARM[3], MIPS[4]
Последняя версия
Репозиторий chromium.googlesource.com/…
Состояние Активная разработка
Лицензия BSD
Сайт code.google.com/p/v8/
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

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

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

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

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

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

Браузеры

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

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

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

См. также

Примечания

  1. Использование V8 в webOS (англ.)
  2. Обзор новой версии webOS 2.0 и встроенного браузера (рус.)
  3. Поддержка архитектур
  4. Официальная поддержка с версии 3.8.2
  5. Chrome Platform Status
  6. Discontinuing release blog posts — 2022.
  7. 1 2 Ларс Бак в Санкт-Петербурге, 2009-12 (рус.)
  8. V8 JavaScript Engine initial export
  9. Запуск V8, Chromium и Google Chrome, 2008-09 (англ.)
  10. Обзор возможностей, 2008-09 (англ.)
  11. Эффективный сбор «мусора» (англ.)
  12. 1 2 Обзор возможностей движка V8 на серверах (рус.)
  13. Обзор мультипроцессорной архитектуры (англ.)
  14. Design Elements (англ.)
  15. Speed test: Google Chrome beats Firefox, IE, Safari (англ.)
  16. Быстрый запуск веб-приложений (рус.)
  17. Mozilla сравнивает производительность движков (англ.)
  18. Проверить производительность движка JavaScript, используемого браузером, можно запустив тесты V8 Benchmark Suite, SunSpider, Kraken
  19. 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.
  20. Включение движка V8 в мобильный браузер Froyo (недоступная ссылка с 23-11-2013 [4211 дней])

Ссылки