V8 (рушій JavaScript): відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Немає опису редагування |
|||
Рядок 1: | Рядок 1: | ||
{{Infobox software |
{{Infobox software |
||
| name = V8 JavaScript Engine |
| name = V8 JavaScript Engine |
||
| logo = |
| logo = V8_JavaScript_engine_logo_2.svg |
||
| screenshot = |
| screenshot = |
||
| caption = |
| caption = |
||
| developer = |
| developer = The Chromium Project |
||
| frequently updated = так |
| frequently updated = так |
||
| operating system = [[Cross-platform]] |
|||
| 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 = 4.1<ref>{{cite web |url=http://code.google.com/p/v8/source/browse/trunk/ChangeLog |title=V8 JavaScript Engine: Changelog |date=19 Feb 2014 |work=[[Google Code]] |publisher=[[Google]] |accessdate=21 Feb 2014}}</ref> |
|||
| latest release version = 5.8<ref>{{cite web|url=https://v8project.blogspot.com/2017/03/v8-release-58.html|title=V8 Release 5.8|publisher=V8 Project}}</ref><ref>{{cite web|url=https://chromereleases.googleblog.com/2017/04/stable-channel-update-for-desktop.html|title=Stable Channel Update for Desktop|publisher=Google Chrome Team}}</ref> |
|||
⚫ | |||
| latest release date = {{start date and age|2017|04|19}} |
|||
| size = |
| size = |
||
| programming language = [[C++]],<ref name="V8"> |
| programming language = [[C++]],<ref name="V8">{{cite web|url=https://code.google.com/p/v8/|title=V8 JavaScript Engine|publisher=[[Google Code]]}}</ref> [[JavaScript]]<ref name="V8"/> |
||
| platform = [[IA-32]], [[x86-64]], [[ARM (архітектура)|ARM]]<ref name=google_dev>https://developers.google.com/v8/intro</ref>, [[MIPS]]<ref>Офіційна підтримка з версії 3.8.2</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]] |
||
| license = [[BSD |
| license = [[BSD licences|BSD]]<ref>{{cite web|url=https://github.com/v8/v8/blob/master/LICENSE.v8|title=v8/LICENSE.v8 at master|publisher=Github}}</ref> |
||
| website = {{URL| |
| website = {{URL|https://developers.google.com/v8}} |
||
}} |
}} |
||
'''V8''' — [[рушій JavaScript]] з [[відкрите програмне забезпечення|відкритим]] [[сирцевий код|сирцевим кодом]]. Розроблено данським відділенням компанії [[Google]], розповсюджується за [[ліцензія BSD|ліцензією BSD]] |
'''V8''' — [[рушій JavaScript]] з [[відкрите програмне забезпечення|відкритим]] [[сирцевий код|сирцевим кодом]]. Розроблено данським відділенням компанії [[Google]], розповсюджується за [[ліцензія BSD|ліцензією BSD]] |
||
Версія за 17:52, 1 червня 2017
Тип | рушій JavaScript |
---|---|
Розробники | The Chromium Project |
Перший випуск | 2 вересня 2008 |
Стабільний випуск | 5.8[1][2] (19 квітня 2017 ) |
Платформа | IA-32, x86-64, ARM[3], MIPS[4] |
Операційна система | Cross-platform |
Мова програмування | C++,[5] JavaScript[5] |
Стан розробки | активний |
Ліцензія | BSD[6] |
Репозиторій | chromium.googlesource.com/v8/v8 |
Вебсайт | developers.google.com/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
V8 дозволяє використання і у браузерах (як то у Chrome та Chromium), так і як окремий високо-продуктивний рушій, котрий може інтегруватися у незалежні проекти, в тому числі серверні реалізації JavaScript у Node.js,[19] або клієнтські JavaScript в .NET/Mono, що спирається на V8.NET.
Браузери
- Chromium - веб-браузер з відкритим кодом, на основі якого створюються низка браузерів
- Google Chrome - веб-браузер від Google
- Opera від версії 13
- CoolNovo - веб-браузер від Maple Studios, що розширює можливості Chromium
- SRWare Iron - веб-браузер від компанії SRWare, випущені через те, що Google Chrome відправляє компанії Google відомості про користувача
- Comodo Dragon - веб-браузер від Comodo з додатковими функціями, що підвищують безпеку та конфіденційність
- Рамблер Ніхром - веб-браузер від Рамблер з сервісами компанії[20]
- Flock - веб-браузер, націлений на роботу з соціальними мережами[21]
- Яндекс.Браузер - веб-браузер від Яндекс з сервісами компанії[22][23]
- Maxthon - веб-браузер з вбудованим блокатором реклами, що використовує два рушії рендеринга: WebKit і Trident[24]
- Браузер Android - мобільний браузер, що входить до Android OS[25]
- Opera для Android[26]
- Vivaldi - веб-оглядач від групи колишніх працівників компанії Opera Software
Операційні системи
- Android - операційна система від Google, призначена для комунікаторів, нетбуків і планшетів. Використовується в браузері, починаючи з Froyo
- Open webOS - операційна система від Hewlett-Packard для комунікаторів, нетбуків і планшетів. Рушій V8 використовується в браузері
- Google Chrome OS - операційна система від Google на базі проекту Chromium, орієнтована на хмарні сервіси. V8 є важливим компонентом ОС
Серверні платформи
Виноски
- ↑ V8 Release 5.8. V8 Project.
- ↑ Stable Channel Update for Desktop. Google Chrome Team.
- ↑ https://developers.google.com/v8/intro
- ↑ Офіційна підтримка з версії 3.8.2
- ↑ а б V8 JavaScript Engine. Google Code.
- ↑ v8/LICENSE.v8 at master. Github.
- ↑ а б Ларс Бак в Санкт-Петербурге(рос.)
- ↑ 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
- ↑ Jolie O'Dell (10 березня 2011). Why Everyone Is Talking About Node. Mashable.
- ↑ Рамблер.Нихром — браузер на базе Chromium
- ↑ Flock меняет основу(англ.)
- ↑ Яндекс.Интернет — браузер на базе Chromium
- ↑ Яндекс Хром входит в каталог рекомендуемых программ Яндекса
- ↑ Реліз Maxthon 3 з рушієм Google V8.(англ.)
- ↑ Включення рушія V8 у мобільний браузер Froyo(англ.)
- ↑ Первый стабильный выпуск основанного на WebKit браузера Opera для Android // opennet.ru 21.05.2013