Русская Википедия:V8 (движок JavaScript)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Другие значения Шаблон:Карточка программы

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

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

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

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

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

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

Движок V8 отличается от других движков (JScript, SpiderMonkey, JavaScriptCore, Nitro) высокой производительностью[8][9][10][11][12].

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

Браузеры

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

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

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

См. также

Примечания

Шаблон:Примечания

Ссылки

Шаблон:ВС Шаблон:ECMAScript Шаблон:FOSS

  1. 1,0 1,1 Ларс Бак в Санкт-Петербурге Шаблон:Wayback, 2009-12Шаблон:Ref-ru
  2. Шаблон:Cite web
  3. Запуск V8, Chromium и Google Chrome Шаблон:Wayback, 2008-09Шаблон:Ref-en
  4. Обзор возможностей Шаблон:Wayback, 2008-09Шаблон:Ref-en
  5. Эффективный сбор «мусора» Шаблон:WaybackШаблон:Ref-en
  6. 6,0 6,1 Обзор возможностей движка V8 на серверах Шаблон:WaybackШаблон:Ref-ru
  7. Обзор мультипроцессорной архитектуры Шаблон:WaybackШаблон:Ref-en
  8. Design Elements Шаблон:WaybackШаблон:Ref-en
  9. Speed test: Google Chrome beats Firefox, IE, Safari Шаблон:WaybackШаблон:Ref-en
  10. Быстрый запуск веб-приложений Шаблон:WaybackШаблон:Ref-ru
  11. Mozilla сравнивает производительность движков Шаблон:WaybackШаблон:Ref-en
  12. Проверить производительность движка JavaScript, используемого браузером, можно запустив тесты V8 Benchmark Suite Шаблон:Webarchive, SunSpider Шаблон:Wayback, Kraken Шаблон:Wayback
  13. http://www.maxthon.com/blog/maxthon-3-what-you-always-wanted-to-know/ Шаблон:Wayback We switched to Maxthon-modified version of Google’s open source V8 engine.
  14. Включение движка V8 в мобильный браузер Froyo Шаблон:WaybackШаблон:Недоступная ссылка