V8 (рушій JavaScript): відмінності між версіями
[перевірена версія] | [перевірена версія] |
Deineka (обговорення | внесок) |
Deineka (обговорення | внесок) |
||
Рядок 61: | Рядок 61: | ||
== Посилання == |
== Посилання == |
||
* [https://code.google.com/p/v8/ Офіційний сайт проекту] {{ref-en}} |
|||
* [https://developers.google.com/v8/intro Документація Google V8] {{ref-en}} |
|||
* [https://v8.googlecode.com/svn/data/benchmarks/v6/run.html Тестування продуктивності JavaScript-рушія за допомогою V8 Benchmark Suite] {{ref-en}} |
|||
* [http://mansio.ru/benchmark Комплексне тестування за допомогою SunSpider, Kraken і V8 Benchmark швидкодії JavaScript-рушіїв] |
|||
* [https://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Lars-Bak-Inside-V8-A-Javascript-Virtual-Machine/ V8 — Віртуальна машина JavaScript] {{ref-en}} |
Версія за 02:50, 22 травня 2013
Тип | рушій JavaScript |
---|---|
Розробники | |
Стабільний випуск | 3.19.1[1] (30 квітня 2013 ) |
Платформа | IA-32, x86-64, ARM[2] |
Операційна система | Microsoft Windows, Mac OS X, Linux, FreeBSD, Android, Google Chrome OS, webOS, BlackBerry 10 |
Мова програмування | C++,[3] JavaScript[3] |
Стан розробки | активний |
Ліцензія | BSD |
Репозиторій | chromium.googlesource.com/v8/v8 |
Вебсайт | code.google.com/p/v8 |
V8 — рушій JavaScript з відкритим сирцевим кодом. Розроблено данським відділенням компанії Google, розповсюджується за ліцензією BSD
Огляд
Розробка JavaScript-рушія V8 почалася у данському відділенні Google в місті Орхус. Провідним розробником став Ларс Бак (Lars Bak). Основними проблемами, які довелося вирішувати розробникам рушія, стали швидкодія і масштабованість[4]. Перша лабораторна версія рушія з'явилася 3 липня 2008[5], а вже 2 вересня було офіційно представлена версія 0.2.5, яка увійшла в перший публічний реліз Chromium[6].
Ларс Бак вважав[7], що наріжними каменями V8 є:
- Компіляція сирцевого коду JavaScript безпосередньо у власний машинний код, минаючи стадію проміжного байт-коду
- Ефективна система управління пам'яттю, яка веде до швидкого об'єктному виділення і маленьким паузам на прибирання сміття[8]
- V8 зупиняє виконання коду під час виконання прибирання сміття
- Зменшує вплив призупинення програми при прибиранні сміття
- V8 може точно визначати, де містяться в пам'яті об'єкти і вказівники, що дозволяє уникнути витоку пам'яті при помилковій ідентифікації об'єктів як вказівників
- Введення прихованих класів і вбудованих кешей, які прискорюють доступ до властивостей і виклики функції
V8 виконує JavaScript-сценарії в особливих «контекстах», які по суті є окремими віртуальними машинами. Правда в одному процесі може працювати тільки одна віртуальна машина, незважаючи на можливість використання декількох нитей[9]. У Chromium це обходиться мультипроцесовою архітектурою, підвищується також стабільність і безпека через реалізацію механізма «пісочниці»[10]. Таким чином, незважаючи на динамічну природу JavaScript, розробникам вдалося застосувати методи, характерні для реалізації класичних об'єктно-орієнтованих мов, такі як компіляція коду «на льоту», внутрішнє кешування, точний процес прибирання сміття, снепшотинг при створенні контекстів[4][9].
Рушій V8 відрізняється від інших рушіїв (JScript, SpiderMonkey, JavaScriptCore, Nitro) високою швидкодією та продуктивністю[11][12][13][14][15]..
Продукти, що використовують V8
Браузери
- Chromium - веб-браузер з відкритим кодом, на основі якого створюються низка браузерів
- Google Chrome - веб-браузер від Google
- CoolNovo - веб-браузер від Maple Studios, що розширює можливості Chromium
- SRWare Iron - веб-браузер від компанії SRWare, випущені через те, що Google Chrome відправляє компанії Google відомості про користувача
- Comodo Dragon - веб-браузер від Comodo з додатковими функціями, що підвищують безпеку та конфіденційність
- Рамблер Ніхром - веб-браузер від Рамблер з сервісами компанії[16]
- Flock - веб-браузер, націлений на роботу з соціальними мережами[17]
- Яндекс.Браузер - веб-браузер від Яндекс з сервісами компанії[18][19]
- Maxthon - веб-браузер з вбудованим блокатором реклами, що використовує два движка рендеринга: WebKit і Trident[20]
- Браузер Android - мобільний браузер, що входить до Android OS[21]
- Opera для Android[22]
Операційні системи
- Android - операційна система від Google, призначена для комунікаторів, нетбуків і планшетів. Використовується в браузері, починаючи з Froyo
- Open webOS - операційна система від Hewlett-Packard для комунікаторів, нетбуків і планшетів. Рушій V8 використовується в браузері
- Google Chrome OS - операційна система від Google на базі проекту Chromium, орієнтована на хмарні сервіси. V8 є важливим компонентом ОС
Серверні плвтформи
Виноски
- ↑ V8 JavaScript Engine: Changelog. Google Code. Google. 30 Apr 2013. Процитовано 30 Apr 2013.
- ↑ https://developers.google.com/v8/intro
- ↑ а б http://code.google.com/p/v8/
- ↑ а б Ларс Бак в Санкт-Петербурге(рос.)
- ↑ V8 JavaScript Engine initial export
- ↑ Запуск V8, Chromium и Google Chrome(англ.)
- ↑ Обзор возможностей(англ.)
- ↑ Эффективный сбор «мусора»(англ.)
- ↑ а б Обзор возможностей движка V8 на серверах(рос.)
- ↑ Обзор мультипроцессорной архитектуры(англ.)
- ↑ Design Elements(англ.)
- ↑ Speed test: Google Chrome beats Firefox, IE, Safari(англ.)
- ↑ Быстрый запуск веб-приложений(рос.)
- ↑ Mozilla сравнивает производительность движков(англ.)
- ↑ Проверить производительность движка JavaScript, используемого браузером, можно запустив тесты V8 Benchmark Suite, SunSpider, Kraken
- ↑ Рамблер.Нихром — браузер на базе Chromium
- ↑ Flock меняет основу(англ.)
- ↑ Яндекс.Интернет — браузер на базе Chromium
- ↑ Яндекс Хром входит в каталог рекомендуемых программ Яндекса
- ↑ Релиз Maxthon 3 с движком Google V8.(англ.)
- ↑ Включення рушія V8 у мобільний браузер Froyo(англ.)
- ↑ Первый стабильный выпуск основанного на WebKit браузера Opera для Android // opennet.ru 21.05.2013