V8 (рушій JavaScript): відмінності між версіями
[неперевірена версія] | [перевірена версія] |
стиль. Це то випадок, коли доцільне написати статтю заново :( Тупий переклад перекладу :( |
мНемає опису редагування |
||
Рядок 10: | Рядок 10: | ||
| 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 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}} |
| latest release date = {{start date and age|2017|04|19}} |
||
| size = |
| size = |
||
| 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"/> |
| 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> |
||
Рядок 19: | Рядок 19: | ||
}} |
}} |
||
'''V8''' |
'''V8''' — [[рушій JavaScript]] з [[відкрите програмне забезпечення|відкритим]] [[сирцевий код|сирцевим кодом]]. Розроблений данським відділенням компанії [[Google]] та розповсюджується за [[ліцензія BSD|ліцензією BSD]]. |
||
== Огляд == |
== Огляд == |
||
Розробка JavaScript-рушія ''V8// почалася у данському відділенні Google в місті [[Орхус]]. Провідним розробником став Ларс Бак (Lars Bak). |
Розробка JavaScript-рушія ''V8// почалася у данському відділенні Google в місті [[Орхус]]. Провідним розробником став Ларс Бак (Lars Bak). |
||
Основними проблемами, які розв'язували розробники були швидкодія та масштабованість<ref name=Lars>[http://googlerussiablog.blogspot.com/2009/12/google_24.html Ларс Бак в Санкт-Петербурге]{{ref-ru}}</ref>. |
Основними проблемами, які розв'язували розробники були швидкодія та масштабованість<ref name=Lars>[http://googlerussiablog.blogspot.com/2009/12/google_24.html Ларс Бак в Санкт-Петербурге]{{ref-ru}}</ref>. Перша лабораторна версія рушія з'явилася 3 липня 2008<ref>[https://code.google.com/p/v8/source/detail?r=2 V8 JavaScript Engine initial export]</ref>, а вже 2 вересня було офіційно представлена версія 0.2.5, яка увійшла в перший публічний реліз [[Chromium]]<ref>[http://googlecode.blogspot.com/2008/09/google-chrome-chromium-and-v8-launch.html Запуск V8, Chromium и Google Chrome]{{ref-en}}</ref>. |
||
Ларс Бак вважав<ref>[http://blog.chromium.org/2008/09/google-chromes-need-for-speed_02.html Огляд можливостей]{{ref-en}}</ref>, що ''V8'' має особливості: |
Ларс Бак вважав<ref>[http://blog.chromium.org/2008/09/google-chromes-need-for-speed_02.html Огляд можливостей]{{ref-en}}</ref>, що ''V8'' має особливості: |
||
* [[Компілятор|Компіляція]] [[сирцевий код|сирцевого коду]] [[JavaScript]] безпосередньо у власний [[машинний код]], минаючи стадію проміжного [[байт-код]]у. |
* [[Компілятор|Компіляція]] [[сирцевий код|сирцевого коду]] [[JavaScript]] безпосередньо у власний [[машинний код]], минаючи стадію проміжного [[байт-код]]у. |
||
* Ефективна система керування пам'яттю, яка дозволяє швидко резервувати місця для об'єкту та зменшити очікування на [[прибирання сміття]]<ref>[https://developers.google.com/v8/design#garb_coll Ефективне збирання «сміття»]{{ref-en}}</ref> |
* Ефективна система керування пам'яттю, яка дозволяє швидко резервувати місця для об'єкту та зменшити очікування на [[прибирання сміття]]<ref>[https://developers.google.com/v8/design#garb_coll Ефективне збирання «сміття»]{{ref-en}}</ref> |
||
** V8 зупиняє виконання коду під час виконання прибирання сміття. |
** V8 зупиняє виконання коду під час виконання прибирання сміття. |
||
** V8 може точно визначати, де містяться в пам'яті [[Об'єкт (програмування)|об'єкти]] й [[вказівники|посилання], що дозволяє уникнути витоку пам'яті при помилковій ідентифікації об'єктів як посилань. |
** V8 може точно визначати, де містяться в пам'яті [[Об'єкт (програмування)|об'єкти]] й [[вказівники|посилання], що дозволяє уникнути витоку пам'яті при помилковій ідентифікації об'єктів як посилань. |
||
* Введення прихованих класів й вбудованих кешів, які прискорюють доступ до властивостей та виклики функцій. |
* Введення прихованих класів й вбудованих кешів, які прискорюють доступ до властивостей та виклики функцій. |
||
''V8'' виконує JavaScript-сценарії в особливих «контекстах», які по суті є окремими [[віртуальна машина|віртуальними машинами]]. Але в одному процесі може працювати тільки одна віртуальна машина, незважаючи на можливість використання декількох [[нить|потоків]]<ref name=sysoev>[http://sysoev.ru/prog/v8.html Огляд можливостей рушія V8 на серверах] {{ref-ru}}</ref>. |
''V8'' виконує JavaScript-сценарії в особливих «контекстах», які по суті є окремими [[віртуальна машина|віртуальними машинами]]. Але в одному процесі може працювати тільки одна віртуальна машина, незважаючи на можливість використання декількох [[нить|потоків]]<ref name=sysoev>[http://sysoev.ru/prog/v8.html Огляд можливостей рушія V8 на серверах] {{ref-ru}}</ref>. У Chromium це обходиться мультипроцесовою архітектурою, підвищується також стабільність і безпека через реалізацію механізму «пісочниці»<ref>[http://dev.chromium.org/developers/design-documents/multi-process-architecture Огляд мультипроцесорної архітектури]{{ref-en}}</ref>. |
||
Рушій ''V8'' відрізняється від інших рушіїв ([[JScript]], [[SpiderMonkey]], [[JavaScriptCore]], [[Nitro]]) високою швидкодією та продуктивністю<ref>[https://developers.google.com/v8/design Design Elements]{{ref-en}}</ref><ref>[http://news.cnet.com/8301-17939_109-10030888-2.html Speed test: Google Chrome beats Firefox, IE, Safari]{{ref-en}}</ref><ref>[https://www.google.com/intl/ru/chrome/browser/features.html#speed Быстрый запуск веб-приложений]{{ref-ru}}</ref><ref>[http://www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ Mozilla порівнює продуктивність рушіїв] {{ref-en}}</ref><ref> |
Рушій ''V8'' відрізняється від інших рушіїв ([[JScript]], [[SpiderMonkey]], [[JavaScriptCore]], [[Nitro]]) високою швидкодією та продуктивністю<ref>[https://developers.google.com/v8/design Design Elements]{{ref-en}}</ref><ref>[http://news.cnet.com/8301-17939_109-10030888-2.html Speed test: Google Chrome beats Firefox, IE, Safari]{{ref-en}}</ref><ref>[https://www.google.com/intl/ru/chrome/browser/features.html#speed Быстрый запуск веб-приложений]{{ref-ru}}</ref><ref>[http://www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ Mozilla порівнює продуктивність рушіїв] {{ref-en}}</ref><ref> |
||
Рядок 46: | Рядок 46: | ||
=== Браузери === |
=== Браузери === |
||
* [[Chromium]] |
* [[Chromium]] — [[веб-браузер]] з відкритим кодом, на основі якого створюються низка браузерів |
||
* [[Google Chrome]] |
* [[Google Chrome]] — веб-браузер від Google |
||
* [[Opera]] від версії 13 |
* [[Opera]] від версії 13 |
||
* [[CoolNovo]] |
* [[CoolNovo]] — веб-браузер від Maple Studios, що розширює можливості Chromium |
||
* [[SRWare Iron]] |
* [[SRWare Iron]] — веб-браузер від компанії SRWare, випущені через те, що Google Chrome відправляє компанії Google відомості про користувача |
||
* [[Comodo Dragon]] |
* [[Comodo Dragon]] — веб-браузер від Comodo з додатковими функціями, що підвищують безпеку та конфіденційність |
||
* [[Рамблер Ніхром]] |
* [[Рамблер Ніхром]] — веб-браузер від [[Рамблер]] з сервісами компанії<ref>[http://nichrome.rambler.ru/ Рамблер. Нихром — браузер на базе Chromium]</ref> |
||
* [[Flock]] |
* [[Flock]] — веб-браузер, націлений на роботу з соціальними мережами<ref name=autogenerated1>[http://beta.flock.com/powered_by_chromium Flock меняет основу]{{ref-en}}</ref> |
||
* [[Maxthon]] |
* [[Maxthon]] — веб-браузер з вбудованим блокатором реклами, що використовує два рушії рендеринга: WebKit і Trident<ref>[http://finance.yahoo.com/news/Maxthon-30-Dual-Display-prnews-1482484669.html;_ylt=AvZRUtT7djovO187LoYlUrSscq9_;_ylu=X3oDMTFkZ3NqZTFtBHBvcwM1BHNlYwNuZXdzSHViQXJ0aWNsZUxpc3QEc2xrA21heHRob24zMGR1YQ--?x=0 Реліз Maxthon 3 з рушієм Google V8].{{ref-en}}</ref> |
||
* Браузер Android |
* Браузер Android — мобільний браузер, що входить до Android OS<ref>[http://www.gadgetsnreviews.com/here-gets-launched-the-android-2-2-froyo-update-for-nexus-one-‘officially’-by-google/2397.html Включення рушія V8 у мобільний браузер Froyo]{{ref-en}}</ref> |
||
* [[Opera для Android]]<ref>[http://www.opennet.ru/opennews/art.shtml?num=36981 Первый стабильный выпуск основанного на WebKit браузера Opera для Android] // [[opennet.ru]] 21.05.2013</ref> |
* [[Opera для Android]]<ref>[http://www.opennet.ru/opennews/art.shtml?num=36981 Первый стабильный выпуск основанного на WebKit браузера Opera для Android] // [[opennet.ru]] 21.05.2013</ref> |
||
* [[Vivaldi]] |
* [[Vivaldi]] — веб-оглядач від групи колишніх працівників компанії Opera Software |
||
=== Операційні системи === |
=== Операційні системи === |
||
* [[Android]] |
* [[Android]] — [[операційна система]] від Google, призначена для комунікаторів, нетбуків і планшетів. Використовується в браузері, починаючи з Froyo |
||
* [[Open webOS]] |
* [[Open webOS]] — операційна система від [[Hewlett-Packard]] для комунікаторів, нетбуків і планшетів. Рушій V8 використовується в браузері |
||
* [[Google Chrome OS]] |
* [[Google Chrome OS]] — операційна система від Google на базі проекту Chromium, орієнтована на хмарні сервіси. V8 є важливим компонентом ОС |
||
=== Серверні платформи === |
=== Серверні платформи === |
||
Рядок 75: | Рядок 75: | ||
* [https://v8.googlecode.com/svn/data/benchmarks/v6/run.html Тестування продуктивності JavaScript-рушія за допомогою V8 Benchmark Suite] {{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-рушіїв] |
* [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 |
* [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}} |
||
[[Категорія:Рушії JavaScript]] |
[[Категорія:Рушії JavaScript]] |
Версія за 19:05, 4 лютого 2019
Тип | рушій JavaScript |
---|---|
Розробники | The Chromium Project |
Перший випуск | 2 вересня 2008 |
Стабільний випуск | 5.8[1][2] (19 квітня 2017 ) |
Платформа | IA-32, x86-64, ARM[3], MIPS[4] |
Операційна система | Багатоплатформний |
Мова програмування | 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].
Рушій V8 відрізняється від інших рушіїв (JScript, SpiderMonkey, JavaScriptCore, Nitro) високою швидкодією та продуктивністю[14][15][16][17][18].
Продукти, що використовують V8
Рушій V8 використовується в:
- браузерах (Chrome та Chromium);
- в складі серверних платформ Node.js[19];
- в складі десктоп-програм, наприклад, на платформі .NET/Mono.
Браузери
- Chromium — веб-браузер з відкритим кодом, на основі якого створюються низка браузерів
- Google Chrome — веб-браузер від Google
- Opera від версії 13
- CoolNovo — веб-браузер від Maple Studios, що розширює можливості Chromium
- SRWare Iron — веб-браузер від компанії SRWare, випущені через те, що Google Chrome відправляє компанії Google відомості про користувача
- Comodo Dragon — веб-браузер від Comodo з додатковими функціями, що підвищують безпеку та конфіденційність
- Рамблер Ніхром — веб-браузер від Рамблер з сервісами компанії[20]
- Flock — веб-браузер, націлений на роботу з соціальними мережами[21]
- Maxthon — веб-браузер з вбудованим блокатором реклами, що використовує два рушії рендеринга: WebKit і Trident[22]
- Браузер Android — мобільний браузер, що входить до Android OS[23]
- Opera для Android[24]
- 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 меняет основу(англ.)
- ↑ Реліз Maxthon 3 з рушієм Google V8.(англ.)
- ↑ Включення рушія V8 у мобільний браузер Froyo(англ.)
- ↑ Первый стабильный выпуск основанного на WebKit браузера Opera для Android // opennet.ru 21.05.2013