V8 (JavaScript engine) - V8 (JavaScript engine)
![]() | |
Původní autoři | Lars Bak |
---|---|
Vývojáři | Chromový projekt |
První vydání | 2. září 2008 |
Stabilní uvolnění | 8.7[1] / 23. října 2020 |
Úložiště | ![]() |
Napsáno | C ++[2] |
Plošina | IA-32, x86-64, PAŽE, AArch64, MIPS, MIPS64[3] PowerPC, IBM s390 |
Typ | JavaScriptový engine |
Licence | BSD[4] |
webová stránka | v8 |
V8 je open-source JavaScriptový engine vyvinutý The Chromium Project pro Google Chrome a Chrom internetové prohlížeče.[5] Tvůrcem projektu je Lars Bak.[6] První verze motoru V8 byla vydána současně s první verzí prohlížeče Chrome: 2. září 2008. Rovněž byla použita na straně serveru, například v Couchbase, MongoDB a Node.js.
Dějiny
V8 assembler je založen na Strongtalk assembler.[7] Dne 7. prosince 2010 byla vydána nová kompilační infrastruktura s názvem Crankshaft s vylepšením rychlosti.[8] Od verze 41 prohlížeče Chrome v roce 2015 byl přidán projekt TurboFan, který umožňuje vyšší rychlost, např. pro asm.js.[9]
V roce 2016 byl do verze V8 přidán tlumič zapalování s cílem designu snížit využití paměti u telefonů Android s malou pamětí ve srovnání s TurboFan a Crankshaft.[10]
V roce 2017 dodala V8 zcela nový kompilátor, který se skládal z Ignition (tlumočník) a TurboFan (optimalizující kompilátor). Počínaje verzí V8 verze 5.9 se Full-codegen a Crankshaft ve verzi V8 již nepoužívají k provádění JavaScriptu, protože tým věřil, že již nejsou schopni držet krok s novými funkcemi jazyka JavaScript a optimalizacemi, které tyto funkce vyžadují.[11]
Design
V8 nejprve vygeneruje abstraktní syntaxový strom s vlastním analyzátorem. Poté Ignition, interpret V8, vygeneruje bytecode z tohoto syntaxového stromu pomocí interního formátu V8 bytecode.[12] TurboFan je kompilátor pro optimalizaci V8, přebírá tento bytecode a generuje z něj strojový kód. Jinými slovy, V8 se kompiluje JavaScript přímo nativní strojový kód použitím just-in-time kompilace před provedením.[13] Kompilovaný kód je dodatečně optimalizován (a znovu optimalizován) dynamicky za běhu na základě heuristiky profilu provádění kódu. Použité optimalizační techniky zahrnují vložka, elize drahých runtime vlastností a vložené ukládání do mezipaměti. The Popelář je generační přírůstkové kolektor.[14]
Používání
V8 lze kompilovat do x86, PAŽE nebo MIPS architektury instrukční sady v 32- i 64bitové edici; také to bylo přeneseno do PowerPC[15] a IBM s390[16][17] pro použití na serverech.[3][18]
V8 lze použít v prohlížeči nebo integrovat do nezávislých projektů. V8 se používá v následujícím softwaru:
- Google Chrome a další Chrom -na základě internetové prohlížeče, počítaje v to Statečný, Opera, Vivaldi a Microsoft Edge.
- Couchbase databázový server
- Deno běhové prostředí[19]
- Elektron desktopový aplikační rámec, používaný Atom a Kód sady Visual Studio textové editory
- MarkLogic databázový server
- Nativní skript rámec pro mobilní aplikace[20]
- Node.js běhové prostředí[21]
- Qt Quick běhové prostředí[22]
Viz také
- Blikat, prohlížeč Chromium
- Porovnání motorů JavaScriptu
Reference
- ^ „V8 release v8.7“. V8 ProjectBlog. 2020-10-23. Citováno 2020-10-23.
- ^ „V8 JavaScript Engine“. Google LLC.
- ^ A b „Úvod - Chrome V8“. Google Developers.
- ^ „v8 / LICENSE.v8 at master“. Github.
- ^ Lenssen, Philipp (1. září 2008). „Google v Google Chrome - komiks“. Google Blogoscoped. Google. Citováno 17. srpna 2010.
- ^ Minto, Rob (27. března 2009). „Génius webového prohlížeče Google“. Financial Times. Citováno 17. srpna 2010.
- ^ „V8 JavaScript Engine: Licence“. Google Code. Google. Archivovány od originál dne 22. července 2010. Citováno 17. srpna 2010.
- ^ „Nový klikový hřídel pro V8“. Chromový blog. Google. 7. prosince 2010. Citováno 22. dubna 2011.
- ^ „Zvýšení výkonu JavaScriptu pomocí TurboFan“. 7. července 2015. Citováno 5. března 2016.
- ^ „BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8“. 26. června 2016. Citováno 2. září 2016.
- ^ „Spuštění zapalování a TurboFan“. 16. května 2017. Citováno 13. července 2017.
- ^ Hinkelmann, Franziska (19. 12. 2017). „Porozumění Bytecode V8“. Střední. Citováno 2019-10-17.
- ^ „Spuštění tlumiče zapalování · V8“. v8.dev. Citováno 2020-09-30.
- ^ „Měnič her pro interaktivní výkon“. Chromový blog. Google. Citováno 1. května 2012.
- ^ „GitHub - ibmruntimes / v8ppc: Port javascriptového enginu Google V8 do PowerPC®“. 21. dubna 2019 - prostřednictvím GitHub.
- ^ „Port Google V8 JavaScript engine do z / OS. Linux na portu Z je udržován v komunitě: ibmruntimes / v8z“. 2. dubna 2019 - prostřednictvím GitHub.
- ^ „Podpora PPC pro Google V8 jde do hlavního proudu“. 30. června 2015.
- ^ „V8 Seznam změn v3.8.2“. Google. Archivovány od originál dne 22. října 2012. Citováno 23. října 2012.
- ^ "Zabezpečený běh JavaScriptu / TypeScriptu vytvořený s V8, Rust a Tokio: denoland / deno". 8. července 2019 - přes GitHub.
- ^ "Přehled - dokumenty NativeScript". docs.nativescript.org.
- ^ Jolie O'Dell (10. března 2011). „Proč všichni mluví o uzlu“. Mashable.
- ^ „Rozdíl mezi qt qml a qt quick“. Přetečení zásobníku. Citováno 2020-09-26.