Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

V8 (JavaScript engine)

From Wikipedia, the free encyclopedia
(Redirected fromChrome V8)
JavaScript and WebAssembly engine

V8
Developer(s)Google[1]
Initial release2 September 2008; 16 years ago (2008-09-02)
Stable release
11.4[2] Edit this on Wikidata / 24 May 2023; 21 months ago (24 May 2023)
Repository
Written inC++[1]
PlatformIA-32,x86-64,32-bit ARM,AArch64,32-bit MIPS,MIPS64,PowerPC,IBM ESA/390,z/Architecture
TypeJavaScript andWebAssembly engine
LicenseBSD[3]
Websitev8.dev Edit this on Wikidata

V8 is aJavaScript andWebAssembly engine developed byGoogle for itsChromebrowser.[1][4] V8 isfree and open-source software that is part of theChromium project and also used separately in non-browser contexts, notably theNode.jsruntime system.[1]

History

[edit]

Google created V8 for itsChrome browser, and both were first released in 2008.[4] The lead developer of V8 wasLars Bak, and it was named after the powerfulcar engine.[5] For several years, Chrome was faster than other browsers at executingJavaScript.[6][7][8]

The V8assembler is based on theStrongtalk assembler.[9] On 7 December 2010, a new compiling infrastructure named Crankshaft was released, with speed improvements.[10] In version 41 of Chrome in 2015, project TurboFan was added to provide more performance improvements with previously challenging workloads such asasm.js.[11] Much of V8's development is strongly inspired by theJava HotSpot Virtual Machine developed bySun Microsystems, with the newer execution pipelines being very similar to those of HotSpot's.

Support for the newWebAssembly language began in 2015.[12]

In 2016, the Ignition interpreter was added to V8 with the design goal of reducing thememory usage on small memoryAndroid phones in comparison with TurboFan and Crankshaft.[13] Ignition is aregister based machine and shares a similar (albeit not the exact same) design to the templating interpreter utilized by HotSpot.

In 2017, V8 shipped a brand-newcompiler pipeline, consisting of Ignition (theinterpreter) and TurboFan (theoptimizing compiler). Starting with V8 version 5.9, Full-codegen (the early baseline compiler) and Crankshaft are no longer used in V8 for JavaScript execution, since the team believed they were no longer able to keep pace with new JavaScript language features and the optimizations those features required.[14]

In 2021, a new tiered compilation pipeline was introduced with the release of the SparkPlug compiler, which supplements the existing TurboFan compiler within V8, in a direct parallel to the profiling C1 Compiler used by HotSpot.

In 2023, the MaglevSSA-based compiler was added, which is 10 times slower than Sparkplug but 10 times faster than TurboFan, bridging the gap between Sparkplug and TurboFan for less frequently run loops that do not get "hot" enough to be optimised by TurboFan, as is the case for most web applications that spend more time interacting with the browser than in JavaScript execution.[15]

Design

[edit]

V8 first generates anabstract syntax tree with its own parser.[16] Then, Ignition generatesbytecode from this syntax tree using the internal V8bytecode format.[17] TurboFan compiles this bytecode into machine code. In other words, V8 compilesECMAScript directly to nativemachine code usingjust-in-time compilation before executing it.[18] The compiled code is additionally optimized (and re-optimized) dynamically at runtime, based on heuristics of the code's execution profile. Optimization techniques used includeinlining,elision of expensive runtime properties, andinline caching. Thegarbage collector is agenerationalincremental collector.[19]

Usage

[edit]

V8 can compile tox86,ARM orMIPSinstruction set architectures in both their32-bit and64-bit editions; it has additionally been ported toPowerPC,[20][21] and toIBM ESA/390 andz/Architecture,[22][20] for use in servers.[23]

V8 can be used in a browser or integrated into independent projects. V8 is used in the following software:

See also

[edit]
  • Blink, the Chromium browser engine

References

[edit]
  1. ^abcd"Documentation · V8". Google. Retrieved3 March 2024.
  2. ^"Chrome Platform Status". Retrieved29 June 2023.
  3. ^"v8/LICENSE.v8 at master". Github.
  4. ^abLenssen, Philipp (1 September 2008)."Google on Google Chrome - comic book".Google Blogoscoped. Retrieved17 August 2010.
  5. ^"V8: an open source JavaScript engine".YouTube. Google. 15 September 2008. Retrieved15 March 2024.
  6. ^"Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome".PC Games Hardware. Computec Media AG. 3 July 2009. Archived fromthe original on 2 May 2012. Retrieved28 June 2010.
  7. ^Purdy, Kevin (11 June 2009)."Lifehacker Speed Tests: Safari 4, Chrome 2".Lifehacker.Archived from the original on 14 April 2021. Retrieved8 May 2021.
  8. ^"Mozilla asks, 'Are we fast yet?'".Wired.Archived from the original on 22 June 2018. Retrieved18 January 2019.
  9. ^"V8 JavaScript Engine: License".Google Code. Archived fromthe original on 22 July 2010. Retrieved17 August 2010.
  10. ^"A New Crankshaft for V8".Chromium Blog. 7 December 2010. Retrieved22 April 2011.
  11. ^"Revving up JavaScript performance with TurboFan". 7 July 2015. Retrieved5 March 2016.
  12. ^"Experimental support for WebAssembly in V8".v8.dev. Retrieved12 March 2024.
  13. ^"BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8".YouTube. 26 June 2016.Archived from the original on 21 December 2021. Retrieved2 September 2016.
  14. ^"Launching Ignition and TurboFan". 16 May 2017. Retrieved13 July 2017.
  15. ^"Maglev - V8's Fastest Optimizing JIT". 5 December 2023. Retrieved26 January 2024.
  16. ^Verwaest, Toon (25 March 2019)."Blazingly fast parsing, part 1: optimizing the scanner · V8".v8.dev.Archived from the original on 21 April 2021. Retrieved1 June 2021.
  17. ^Hinkelmann, Franziska (19 December 2017)."Understanding V8's Bytecode".Medium. Retrieved17 October 2019.
  18. ^"Firing up the Ignition interpreter · V8".v8.dev. Retrieved30 September 2020.
  19. ^"A game changer for interactive performance".blog.chromium.org. 21 November 2011. Retrieved6 February 2022.
  20. ^ab"PPC support for Google V8 goes mainstream". 30 June 2015. Archived fromthe original on 12 September 2015.
  21. ^"GitHub - ibmruntimes/v8ppc: Port of Google V8 javascript engine to PowerPC®". 21 April 2019 – via GitHub.
  22. ^"Port of Google V8 JavaScript engine to z/OS. The Linux on Z port is maintained in the community: ibmruntimes/v8z". 2 April 2019 – via GitHub.
  23. ^"V8 Changelog v3.8.2". Archived fromthe original on 22 October 2012. Retrieved23 October 2012.
  24. ^"V8 Runtime Overview | Apps Script".Google for Developers. Retrieved26 January 2025.
  25. ^"A secure JavaScript/TypeScript runtime built with V8, Rust, and Tokio: denoland/deno". 8 July 2019 – via GitHub.
  26. ^"Overview - NativeScript Docs".docs.nativescript.org.
  27. ^Jolie O'Dell (10 March 2011)."Why Everyone Is Talking About Node". Mashable.

External links

[edit]
Wikimedia Commons has media related toV8 (JavaScript engine).
Dialects
Engines
(comparison)
Frameworks
Client-side
Server-side
Multiple
  • Cappuccino
Libraries
People
Other
Google free and open-source software
Software
Applications
Programming languages
Frameworks and
development tools
Operating systems
Related
Platform
Frameworks
Libraries
Languages
Retrieved from "https://en.wikipedia.org/w/index.php?title=V8_(JavaScript_engine)&oldid=1271945660"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp