V8 (JavaScript engine)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
V8 JavaScript Engine
V8 JavaScript engine logo 2.svg
Developer(s) The Chromium Project
Initial release September 2, 2008; 8 years ago (2008-09-02)
Stable release
5.5[1] / October 24, 2016; 35 days ago (2016-10-24)
Repository github.com/v8/v8
Development status Active
Written in C++,[2] JavaScript[2]
Operating system Cross-platform
Platform IA-32, x86-64, ARM, MIPS,[3] PowerPC, IBM s390
Type JavaScript engine
License BSD[4]
Website developers.google.com/v8

The V8 JavaScript Engine is an open source JavaScript engine developed by The Chromium Project for the Google Chrome web browser.[5] It has seen use in many other projects, such as Couchbase, MongoDB and Node.js that are used server side. As of 2012, the head programmer 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.

V8 compiles JavaScript to native machine code (IA-32, x86-64, ARM, or MIPS ISAs; has also been ported to PowerPC[7] and IBM s390[8][9] for use in servers)[3][10] 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, among many others.

History[edit]

The garbage collector of V8 is a generational incremental collector.[11] 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]

Usage[edit]

V8 is intended to be used both in a browser (notably in Chrome and Chromium browsers) and as a standalone high-performance engine that can be integrated into independent projects, for example server-side JavaScript in Node.js,[16] CouchDB, or client side JavaScript in .NET/Mono using V8.NET.

V8 is used in the following applications:

See also[edit]

References[edit]

  1. ^ "V8 Release 5.5". V8 Project. 
  2. ^ a b "V8 JavaScript Engine". Google Code. 
  3. ^ a b "Introduction - Chrome V8". Google Developers. 
  4. ^ "v8/LICENSE.v8 at master". Github. 
  5. ^ Lenssen, Philipp (1 September 2008). "Google on Google Chrome - comic book". Google Blogoscoped. Google. Retrieved 17 August 2010. 
  6. ^ Minto, Rob (27 March 2009). "The genius behind Google's web browser". Financial Times. Retrieved 17 August 2010. 
  7. ^ https://github.com/andrewlow/v8ppc
  8. ^ https://github.com/andrewlow/v8z
  9. ^ https://developer.ibm.com/opentech/2015/06/30/ppc-support-for-google-v8-goes-mainstream/
  10. ^ "V8 Changelog v3.8.2". Google. Retrieved 23 October 2012. 
  11. ^ "A game changer for interactive performance". Chromium Blog. Google. Retrieved 1 May 2012. 
  12. ^ "V8 JavaScript Engine: License". Google Code. Google. Archived from the original on July 22, 2010. Retrieved 17 August 2010. 
  13. ^ "A New Crankshaft for V8". Chromium Blog. Google. 7 December 2010. Retrieved 22 April 2011. 
  14. ^ "Revving up JavaScript performance with TurboFan". 7 July 2015. Retrieved 5 March 2016. 
  15. ^ "BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8". 26 June 2016. Retrieved 2 September 2016. 
  16. ^ Jolie O'Dell (March 10, 2011). "Why Everyone Is Talking About Node". Mashable. 

External links[edit]