V8 (движок JavaScript)


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

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

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

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