V8 (JavaScript engine)
| Developer(s) | The Chromium Project |
|---|---|
| Initial release | September 2, 2008 |
| Stable release |
5.5[1] / October 24, 2016
|
| Repository | github |
| 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 |
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[update], 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] MongoDB, CouchDB, or client side JavaScript in .NET/Mono using V8.NET.
See also[edit]
References[edit]
- ^ "V8 Release 5.5". V8 Project.
- ^ a b "V8 JavaScript Engine". Google Code.
- ^ a b "Introduction - Chrome V8". Google Developers.
- ^ "v8/LICENSE.v8 at master". Github.
- ^ Lenssen, Philipp (1 September 2008). "Google on Google Chrome - comic book". Google Blogoscoped. Google. Retrieved 17 August 2010.
- ^ Minto, Rob (27 March 2009). "The genius behind Google's web browser". Financial Times. Retrieved 17 August 2010.
- ^ https://github.com/andrewlow/v8ppc
- ^ https://github.com/andrewlow/v8z
- ^ https://developer.ibm.com/opentech/2015/06/30/ppc-support-for-google-v8-goes-mainstream/
- ^ "V8 Changelog v3.8.2". Google. Retrieved 23 October 2012.
- ^ "A game changer for interactive performance". Chromium Blog. Google. Retrieved 1 May 2012.
- ^ "V8 JavaScript Engine: License". Google Code. Google. Archived from the original on July 22, 2010. Retrieved 17 August 2010.
- ^ "A New Crankshaft for V8". Chromium Blog. Google. 7 December 2010. Retrieved 22 April 2011.
- ^ "Revving up JavaScript performance with TurboFan". 7 July 2015. Retrieved 5 March 2016.
- ^ "BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8". 26 June 2016. Retrieved 2 September 2016.
- ^ Jolie O'Dell (March 10, 2011). "Why Everyone Is Talking About Node". Mashable.
External links[edit]
| Wikimedia Commons has media related to V8 (JavaScript engine). |
- Official website at Google Code
- Google's Lars Bak V8: an open source JavaScript engine on YouTube
- How the V8 engine works?, by Thibault Laurens, 29 April 2013
- JSConf2012 – presentation on what is V8 able to do, by Vyacheslav Egorov at jsconf
- V8.NET – a wrapper for .NET at Codeplex
| This free-software-related article is a stub. You can help Wikipedia by expanding it. |
| This Google-related article is a stub. You can help Wikipedia by expanding it. |

