V8 (рушій JavaScript): відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Рядок 6: Рядок 6:
| developer = [[Google]]
| developer = [[Google]]
| frequently updated = так
| frequently updated = так
| operating system = [[Microsoft Windows]], [[Mac OS X]], [[Linux]], [[FreeBSD]], [[Android]], [[Google Chrome OS]], [[webOS]], [[BlackBerry 10]]
| operating system = [[Microsoft Windows]], [[Mac OS X]], [[Linux]], [[FreeBSD]], [[Android]], [[Google Chrome OS]], [[webOS]]<ref>[http://www.precentral.net/palm-and-hp-oscon2010-open-source-inevitable Використання V8 у webOS]{{ref-en}}</ref><ref>[http://www.computerra.ru/vision/559188/ Обзор новой версии webOS 2.0 и встроенного браузера]{{ref-ru}}</ref>, [[BlackBerry 10]]
| latest release version = 3.19.1<ref>{{cite web |url=http://code.google.com/p/v8/source/browse/trunk/ChangeLog |title=V8 JavaScript Engine: Changelog |date=30 Apr 2013 |work=[[Google Code]] |publisher=[[Google]] |accessdate=30 Apr 2013}}</ref>
| latest release version = 3.19.1<ref>{{cite web |url=http://code.google.com/p/v8/source/browse/trunk/ChangeLog |title=V8 JavaScript Engine: Changelog |date=30 Apr 2013 |work=[[Google Code]] |publisher=[[Google]] |accessdate=30 Apr 2013}}</ref>
| latest release date = {{start date and age|2013|04|30}}
| latest release date = {{start date and age|2013|04|30}}
| size =
| size =
| programming language = [[C++]],<ref name="V8">http://code.google.com/p/v8/</ref> [[JavaScript]]<ref name="V8"/>
| programming language = [[C++]],<ref name="V8">http://code.google.com/p/v8/</ref> [[JavaScript]]<ref name="V8"/>
| platform = [[IA-32]], [[x86-64]], [[ARM architecture|ARM]]<ref name=google_dev>https://developers.google.com/v8/intro</ref>
| platform = [[IA-32]], [[x86-64]], [[ARM (архітектура)|ARM]]<ref name=google_dev>https://developers.google.com/v8/intro</ref>, [[MIPS]]<ref>Офіційна підтримка з версії 3.8.2</ref>
| status = активний
| status = активний
| genre = [[рушій JavaScript]]
| genre = [[рушій JavaScript]]

Версія за 03:03, 22 травня 2013

V8 JavaScript Engine
Типрушій JavaScript
РозробникиGoogle
Стабільний випуск3.19.1[1] (30 квітня 2013; 11 років тому (2013-04-30))
ПлатформаIA-32, x86-64, ARM[2], MIPS[3]
Операційна системаMicrosoft Windows, Mac OS X, Linux, FreeBSD, Android, Google Chrome OS, webOS[4][5], BlackBerry 10
Мова програмуванняC++,[6] JavaScript[6]
Стан розробкиактивний
ЛіцензіяBSD
Репозиторійchromium.googlesource.com/v8/v8
Вебсайтcode.google.com/p/v8

V8рушій JavaScript з відкритим сирцевим кодом. Розроблено данським відділенням компанії Google, розповсюджується за ліцензією BSD

Огляд

Розробка 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 - веб-браузер з відкритим кодом, на основі якого створюються низка браузерів
  • Google Chrome - веб-браузер від Google
  • CoolNovo - веб-браузер від Maple Studios, що розширює можливості Chromium
  • SRWare Iron - веб-браузер від компанії SRWare, випущені через те, що Google Chrome відправляє компанії Google відомості про користувача
  • Comodo Dragon - веб-браузер від Comodo з додатковими функціями, що підвищують безпеку та конфіденційність
  • Рамблер Ніхром - веб-браузер від Рамблер з сервісами компанії[19]
  • Flock - веб-браузер, націлений на роботу з соціальними мережами[20]
  • Яндекс.Браузер - веб-браузер від Яндекс з сервісами компанії[21][22]
  • Maxthon - веб-браузер з вбудованим блокатором реклами, що використовує два движка рендеринга: WebKit і Trident[23]
  • Браузер Android - мобільний браузер, що входить до Android OS[24]
  • Opera для Android[25]

Операційні системи

  • Android - операційна система від Google, призначена для комунікаторів, нетбуків і планшетів. Використовується в браузері, починаючи з Froyo
  • Open webOS - операційна система від Hewlett-Packard для комунікаторів, нетбуків і планшетів. Рушій V8 використовується в браузері
  • Google Chrome OS - операційна система від Google на базі проекту Chromium, орієнтована на хмарні сервіси. V8 є важливим компонентом ОС

Серверні платформи

Виноски

  1. V8 JavaScript Engine: Changelog. Google Code. Google. 30 Apr 2013. Процитовано 30 Apr 2013.
  2. https://developers.google.com/v8/intro
  3. Офіційна підтримка з версії 3.8.2
  4. Використання V8 у webOS(англ.)
  5. Обзор новой версии webOS 2.0 и встроенного браузера(рос.)
  6. а б http://code.google.com/p/v8/
  7. а б Ларс Бак в Санкт-Петербурге(рос.)
  8. V8 JavaScript Engine initial export
  9. Запуск V8, Chromium и Google Chrome(англ.)
  10. Обзор возможностей(англ.)
  11. Эффективный сбор «мусора»(англ.)
  12. а б Обзор возможностей движка 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. Рамблер.Нихром — браузер на базе Chromium
  20. Flock меняет основу(англ.)
  21. Яндекс.Интернет — браузер на базе Chromium
  22. Яндекс Хром входит в каталог рекомендуемых программ Яндекса
  23. Релиз Maxthon 3 с движком Google V8.(англ.)
  24. Включення рушія V8 у мобільний браузер Froyo(англ.)
  25. Первый стабильный выпуск основанного на WebKit браузера Opera для Android // opennet.ru 21.05.2013

Посилання