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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Sidoruk-SV (обговорення | внесок)
Немає опису редагування
Рядок 1: Рядок 1:
{{Infobox software
{{Infobox software
| name = V8 JavaScript Engine
| name = V8 JavaScript Engine
| logo =[[File:V8 JavaScript engine logo.png]]
| logo = V8_JavaScript_engine_logo_2.svg
| screenshot =
| screenshot =
| caption =
| caption =
| developer = [[Google]]
| 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]]
| released = {{start date and age|2008|9|2}}
| 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|2015|3|3}}
| latest release date = {{start date and age|2017|04|19}}
| 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">{{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 licence|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|code.google.com/p/v8}}
| website = {{URL|https://developers.google.com/v8}}
}}
}}

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



Версія за 17:52, 1 червня 2017

V8 JavaScript Engine
Типрушій JavaScript
РозробникиThe Chromium Project
Перший випуск2 вересня 2008; 15 років тому (2008-09-02)
Стабільний випуск5.8[1][2] (19 квітня 2017; 7 років тому (2017-04-19))
Платформа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 є важливим компонентом ОС

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

Виноски

  1. V8 Release 5.8. V8 Project.
  2. Stable Channel Update for Desktop. Google Chrome Team.
  3. https://developers.google.com/v8/intro
  4. Офіційна підтримка з версії 3.8.2
  5. а б V8 JavaScript Engine. Google Code.
  6. v8/LICENSE.v8 at master. Github.
  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. Jolie O'Dell (10 березня 2011). Why Everyone Is Talking About Node. Mashable.
  20. Рамблер.Нихром — браузер на базе Chromium
  21. Flock меняет основу(англ.)
  22. Яндекс.Интернет — браузер на базе Chromium
  23. Яндекс Хром входит в каталог рекомендуемых программ Яндекса
  24. Реліз Maxthon 3 з рушієм Google V8.(англ.)
  25. Включення рушія V8 у мобільний браузер Froyo(англ.)
  26. Первый стабильный выпуск основанного на WebKit браузера Opera для Android // opennet.ru 21.05.2013

Посилання