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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Виправлено джерел: 1; позначено як недійсні: 0.) #IABot (v2.0.9.2
Рядок 36: Рядок 36:
''V8'' виконує JavaScript-сценарії в особливих «контекстах», які по суті є окремими [[віртуальна машина|віртуальними машинами]]. Але в одному процесі може працювати тільки одна віртуальна машина, незважаючи на можливість використання декількох [[нить|потоків]]<ref name=sysoev>[http://sysoev.ru/prog/v8.html Огляд можливостей рушія V8 на серверах] {{Webarchive|url=https://web.archive.org/web/20130729165257/http://sysoev.ru/prog/v8.html |date=29 липня 2013 }} {{ref-ru}}</ref>. У Chromium це обходиться мультипроцесовою архітектурою, підвищується також стабільність і безпека через реалізацію механізму «пісочниці»<ref>[http://dev.chromium.org/developers/design-documents/multi-process-architecture Огляд мультипроцесорної архітектури] {{Webarchive|url=https://web.archive.org/web/20130519103928/http://dev.chromium.org/developers/design-documents/multi-process-architecture |date=19 травня 2013 }}{{ref-en}}</ref>.
''V8'' виконує JavaScript-сценарії в особливих «контекстах», які по суті є окремими [[віртуальна машина|віртуальними машинами]]. Але в одному процесі може працювати тільки одна віртуальна машина, незважаючи на можливість використання декількох [[нить|потоків]]<ref name=sysoev>[http://sysoev.ru/prog/v8.html Огляд можливостей рушія V8 на серверах] {{Webarchive|url=https://web.archive.org/web/20130729165257/http://sysoev.ru/prog/v8.html |date=29 липня 2013 }} {{ref-ru}}</ref>. У Chromium це обходиться мультипроцесовою архітектурою, підвищується також стабільність і безпека через реалізацію механізму «пісочниці»<ref>[http://dev.chromium.org/developers/design-documents/multi-process-architecture Огляд мультипроцесорної архітектури] {{Webarchive|url=https://web.archive.org/web/20130519103928/http://dev.chromium.org/developers/design-documents/multi-process-architecture |date=19 травня 2013 }}{{ref-en}}</ref>.


Рушій ''V8'' відрізняється від інших рушіїв ([[JScript]], [[SpiderMonkey]], [[JavaScriptCore]], [[Nitro]]) високою швидкодією та продуктивністю<ref>[https://developers.google.com/v8/design Design Elements] {{Webarchive|url=https://web.archive.org/web/20130917191010/https://developers.google.com/v8/design |date=17 вересня 2013 }}{{ref-en}}</ref><ref>[http://news.cnet.com/8301-17939_109-10030888-2.html Speed test: Google Chrome beats Firefox, IE, Safari] {{Webarchive|url=https://www.webcitation.org/60uf8IjwA?url=http://news.cnet.com/8301-1001_3-10030888-92.html |date=13 серпня 2011 }}{{ref-en}}</ref><ref>[https://www.google.com/intl/ru/chrome/browser/features.html#speed Быстрый запуск вебприложений] {{Webarchive|url=https://web.archive.org/web/20130809163917/https://www.google.com/intl/ru/chrome/browser/features.html#speed |date=9 серпня 2013 }}{{ref-ru}}</ref><ref>[http://www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ Mozilla порівнює продуктивність рушіїв] {{Webarchive|url=https://web.archive.org/web/20100911072832/http://www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ |date=11 вересня 2010 }} {{ref-en}}</ref><ref>Перевірити продуктивність рушія JavaScript, що використовується браузером, можна запустивши тести [https://v8.googlecode.com/svn/data/benchmarks/v6/run.html V8 Benchmark Suite] {{Webarchive|url=https://web.archive.org/web/20130304102552/http://v8.googlecode.com/svn/data/benchmarks/v6/run.html |date=4 березня 2013 }}, [http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html SunSpider] {{Webarchive|url=https://web.archive.org/web/20121227092305/http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html |date=27 грудня 2012 }}, [http://krakenbenchmark.mozilla.org/ Kraken] {{Webarchive|url=https://web.archive.org/web/20200701180928/https://krakenbenchmark.mozilla.org/ |date=1 липня 2020 }}</ref>.
Рушій ''V8'' відрізняється від інших рушіїв ([[JScript]], [[SpiderMonkey]], [[JavaScriptCore]], [[Nitro]]) високою швидкодією та продуктивністю<ref>[https://developers.google.com/v8/design Design Elements] {{Webarchive|url=https://web.archive.org/web/20130917191010/https://developers.google.com/v8/design |date=17 вересня 2013 }}{{ref-en}}</ref><ref>[http://news.cnet.com/8301-17939_109-10030888-2.html Speed test: Google Chrome beats Firefox, IE, Safari] {{Webarchive|url=https://web.archive.org/web/20111006002918/http://news.cnet.com/8301-1001_3-10030888-92.html |date=2011-10-06 }}{{ref-en}}</ref><ref>[https://www.google.com/intl/ru/chrome/browser/features.html#speed Быстрый запуск вебприложений] {{Webarchive|url=https://web.archive.org/web/20130809163917/https://www.google.com/intl/ru/chrome/browser/features.html#speed |date=9 серпня 2013 }}{{ref-ru}}</ref><ref>[http://www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ Mozilla порівнює продуктивність рушіїв] {{Webarchive|url=https://web.archive.org/web/20100911072832/http://www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ |date=11 вересня 2010 }} {{ref-en}}</ref><ref>Перевірити продуктивність рушія JavaScript, що використовується браузером, можна запустивши тести [https://v8.googlecode.com/svn/data/benchmarks/v6/run.html V8 Benchmark Suite] {{Webarchive|url=https://web.archive.org/web/20130304102552/http://v8.googlecode.com/svn/data/benchmarks/v6/run.html |date=4 березня 2013 }}, [http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html SunSpider] {{Webarchive|url=https://web.archive.org/web/20121227092305/http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html |date=27 грудня 2012 }}, [http://krakenbenchmark.mozilla.org/ Kraken] {{Webarchive|url=https://web.archive.org/web/20200701180928/https://krakenbenchmark.mozilla.org/ |date=1 липня 2020 }}</ref>.


== Продукти, що використовують V8 ==
== Продукти, що використовують V8 ==

Версія за 00:20, 24 жовтня 2022

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]
Операційна системаБагатоплатформний
Мова програмування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 використовується в:

  • браузерах (Google 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 з додатковими функціями, що підвищують безпеку та конфіденційність
  • Flock — веббраузер, націлений на роботу з соціальними мережами[20]
  • Maxthon — веббраузер з вбудованим блокатором реклами, що використовує два рушії рендеринга: WebKit і Trident[21]
  • Браузер Android — мобільний браузер, що входить до Android OS[22]
  • Opera для Android[23]
  • Vivaldi — вебоглядач від групи колишніх працівників компанії Opera Software

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

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

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

Виноски

  1. V8 Release 5.8. V8 Project. Архів оригіналу за 30 березня 2017. Процитовано 1 червня 2017.
  2. Stable Channel Update for Desktop. Google Chrome Team. Архів оригіналу за 18 травня 2017. Процитовано 1 червня 2017.
  3. Архівована копія. Архів оригіналу за 4 квітня 2017. Процитовано 22 травня 2013.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. Офіційна підтримка з версії 3.8.2
  5. а б V8 JavaScript Engine. Google Code. Архів оригіналу за 15 травня 2013. Процитовано 22 травня 2013.
  6. v8/LICENSE.v8 at master. Github. Архів оригіналу за 7 серпня 2021. Процитовано 1 червня 2017.
  7. Ларс Бак в Санкт-Петербурге [Архівовано 8 березня 2013 у Wayback Machine.](рос.)
  8. V8 JavaScript Engine initial export. Архів оригіналу за 3 жовтня 2014. Процитовано 22 травня 2013.
  9. Запуск V8, Chromium и Google Chrome [Архівовано 13 березня 2015 у Wayback Machine.](англ.)
  10. Огляд можливостей [Архівовано 3 грудня 2010 у Wayback Machine.](англ.)
  11. Ефективне збирання «сміття» [Архівовано 17 вересня 2013 у Wayback Machine.](англ.)
  12. Огляд можливостей рушія V8 на серверах [Архівовано 29 липня 2013 у Wayback Machine.] (рос.)
  13. Огляд мультипроцесорної архітектури [Архівовано 19 травня 2013 у Wayback Machine.](англ.)
  14. Design Elements [Архівовано 17 вересня 2013 у Wayback Machine.](англ.)
  15. Speed test: Google Chrome beats Firefox, IE, Safari [Архівовано 2011-10-06 у Wayback Machine.](англ.)
  16. Быстрый запуск вебприложений [Архівовано 9 серпня 2013 у Wayback Machine.](рос.)
  17. Mozilla порівнює продуктивність рушіїв [Архівовано 11 вересня 2010 у Wayback Machine.] (англ.)
  18. Перевірити продуктивність рушія JavaScript, що використовується браузером, можна запустивши тести V8 Benchmark Suite [Архівовано 4 березня 2013 у Wayback Machine.], SunSpider [Архівовано 27 грудня 2012 у Wayback Machine.], Kraken [Архівовано 1 липня 2020 у Wayback Machine.]
  19. Jolie O'Dell (10 березня 2011). Why Everyone Is Talking About Node. Mashable. Архів оригіналу за 2 серпня 2017. Процитовано 14 червня 2014.
  20. Flock меняет основу [Архівовано 7 березня 2012 у Wayback Machine.](англ.)
  21. Реліз Maxthon 3 з рушієм Google V8 [Архівовано 8 жовтня 2010 у Wayback Machine.].(англ.)
  22. Включення рушія V8 у мобільний браузер Froyo [Архівовано 1 січня 2011 у Wayback Machine.](англ.)
  23. Первый стабильный выпуск основанного на WebKit браузера Opera для Android [Архівовано 7 червня 2013 у Wayback Machine.] // opennet.ru 21.05.2013

Посилання