Software:Chrome V8

From HandWiki
V8
V8 JavaScript engine logo 2.svg
Developer(s)The Chromium Project
Initial releaseSeptember 2, 2008; 15 years ago (2008-09-02)
Stable release
7.0[1] / October 15, 2018; 5 years ago (2018-10-15)
Written inC++,[2] JavaScript[2]
PlatformIA-32, x86-64, ARM, MIPS,[3] PowerPC, IBM s390
TypeJavaScript engine
LicenseBSD[4]
Websitev8.dev

Chrome V8, or simply V8, is an open-source JavaScript engine developed by The Chromium Project for Google Chrome and Chromium web browsers.[5] The project’s creator is Lars Bak.[6] The first version of the V8 engine was released at the same time as the first version of Chrome: September 2, 2008. It has also been used in Couchbase, MongoDB and Node.js that are used server-side.

V8 compiles JavaScript directly to native machine code before executing it, instead of more traditional techniques such as interpreting bytecode or compiling the whole program to machine code and executing it from a filesystem. The compiled code is additionally optimized (and re-optimized) dynamically at runtime, based on heuristics of the code's execution profile. Optimization techniques used include inlining, elision of expensive runtime properties, and inline caching. The garbage collector is a generational incremental collector.[7]

V8 can compile to x86, ARM or MIPS instruction set architectures in both their 32- and 64-bit editions; as well, it has been ported to PowerPC[8] and IBM s390[9][10] for use in servers.[3][11]

History

The V8 assembler is based on the Strongtalk assembler.[12] On 7 December 2010, a new compiling infrastructure named Crankshaft was released, with speed improvements.[13] Since version 41 of Chrome in 2015, project TurboFan has been added to enable more speed, e.g. for asm.js.[14]

In 2016, the Ignition interpreter was added to V8 with the design goal of reducing the memory usage on small memory Android phones in comparison with TurboFan and Crankshaft.[15]

In 2017, V8 shipped a brand-new compiler pipeline, consisting of Ignition (the interpreter) and TurboFan (the optimizing compiler). Starting with V8 version 5.9, Full-codegen and Crankshaft are no longer used in V8 for JavaScript execution, since the team believes they are no longer able to keep pace with new JavaScript language features and the optimizations those features require.[16]

Usage

V8 is intended to be used both in a browser and as a standalone high-performance engine that can be integrated into independent projects. V8 is used in the following software:

See also


References

  1. "V8 release v7.0". 2018-10-15. https://v8.dev/blog/v8-release-70. 
  2. 2.0 2.1 "V8 JavaScript Engine". Google Code. https://code.google.com/p/v8/. 
  3. 3.0 3.1 "Introduction - Chrome V8". Google Developers. https://developers.google.com/v8/intro. 
  4. "v8/LICENSE.v8 at master". Github. https://github.com/v8/v8/blob/master/LICENSE.v8. 
  5. Lenssen, Philipp (1 September 2008). "Google on Google Chrome - comic book". Google Blogoscoped. Google. http://blogoscoped.com/google-chrome/. Retrieved 17 August 2010. 
  6. Minto, Rob (27 March 2009). "The genius behind Google’s web browser". Financial Times. http://www.ft.com/cms/s/2/03775904-177c-11de-8c9d-0000779fd2ac.html. Retrieved 17 August 2010. 
  7. "A game changer for interactive performance". Chromium Blog. Google. https://blog.chromium.org/2011/11/game-changer-for-interactive.html. Retrieved 1 May 2012. 
  8. https://github.com/andrewlow/v8ppc
  9. https://github.com/andrewlow/v8z
  10. https://developer.ibm.com/opentech/2015/06/30/ppc-support-for-google-v8-goes-mainstream/
  11. "V8 Changelog v3.8.2". Google. http://v8.googlecode.com/svn/trunk/ChangeLog. Retrieved 23 October 2012. 
  12. "V8 JavaScript Engine: License". Google Code. Google. Archived from the original on July 22, 2010. https://web.archive.org/web/20100722105022/http://code.google.com/p/v8/source/browse/trunk/LICENSE. Retrieved 17 August 2010. 
  13. "A New Crankshaft for V8". Chromium Blog. Google. 7 December 2010. https://blog.chromium.org/2010/12/new-crankshaft-for-v8.html. Retrieved 22 April 2011. 
  14. "Revving up JavaScript performance with TurboFan". 7 July 2015. https://blog.chromium.org/2015/07/revving-up-javascript-performance-with.html. Retrieved 5 March 2016. 
  15. "BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8". 26 June 2016. https://www.youtube.com/watch?v=r5OWCtuKiAk. Retrieved 2 September 2016. 
  16. "Launching Ignition and TurboFan". 16 May 2017. https://v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html. Retrieved 13 July 2017. 
  17. Jolie O'Dell (March 10, 2011). "Why Everyone Is Talking About Node". Mashable. http://mashable.com/2011/03/10/node-js/. 
  18. "NativeScript Android Runtime Overview". https://docs.nativescript.org/runtimes/android/overview. 

External links