Jump to content

V8 (JavaScript engine)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Mindmatrix (talk | contribs) at 14:19, 15 April 2016 (Reverted edits by 110.37.216.38 (talk) to last version by 182.189.74.52). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

V8 JavaScript Engine
Developer(s)The Chromium Project
Stable release
5.0[1] / March 15, 2016; 8 years ago (2016-03-15)
Repository
Written inC++,[2] JavaScript[2]
Operating systemCross-platform
PlatformIA-32, x86-64, ARM, MIPS,[3] PowerPC, IBM s390
TypeJavaScript engine
LicenseBSD[4]
Websitedevelopers.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 since 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.

Details

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]

Usage

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,[15] MongoDB, CouchDB, or client side JavaScript in .NET/Mono using V8.NET.

See also

References

  1. ^ "V8 Release 5.0". 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. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  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. ^ Jolie O'Dell (March 10, 2011). "Why Everyone Is Talking About Node". Mashable.