V8 est un moteur JavaScript open-source développé par le projet Chromium pour les navigateurs Web Google Chrome et Chromium[3]. Le créateur du projet est Lars Bak[4]. La première version du moteur V8 a été publiée en même temps que la première version de Chrome, le 2 septembre 2008. Il a également été utilisé dans Couchbase, MongoDB et Node.js côté serveur.

V8
Description de l'image V8 JavaScript engine logo 2.svg.

Informations
Développé par Lars Bak, Christian Plesner Hansen (d), Kasper Lund (d), Mads Sig Ager (d), Benedikt Meurer (d) et Yang Guo (d)Voir et modifier les données sur Wikidata
Dernière version 11.4 (24 mai 2023)[1],[2]Voir et modifier les données sur Wikidata
Dépôt chromium.googlesource.com/v8/v8Voir et modifier les données sur Wikidata
Écrit en C++ et JavaScriptVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, Linux, macOS, FreeBSD, Android, ChromeOS, webOS et BlackBerry 10Voir et modifier les données sur Wikidata
Environnement IA-32, X64, architecture ARM, ARMv8, architecture MIPS, IBM System/390 et PowerPCVoir et modifier les données sur Wikidata
Type Moteur JavaScript
Machine virtuelleVoir et modifier les données sur Wikidata
Licence BSD 3-clausesVoir et modifier les données sur Wikidata
Site web v8.devVoir et modifier les données sur Wikidata

V8 compile directement le code JavaScript en code machine natif avant de l’exécuter, au lieu d'utiliser des techniques plus traditionnelles telles que l’interprétation du bytecode ou la compilation du programme complet en code machine et l’exécution à partir d’un système de fichiers. Le code compilé est en outre optimisé (et ré-optimisé) dynamiquement au moment de l'exécution, en fonction du profil d'exécution du code. Les techniques d'optimisation utilisées comprennent inlining, elision des propriétés d'exécution coûteuses, et la mise en cache. Le ramasse-miettes est un collecteur incrémental de génération[5].

V8 peut compiler vers x86, ARM ou MIPS dans leurs éditions 32 bits et 64 bits ; de plus, il a été porté sur PowerPC[6] et IBM S/390[7],[8] pour une utilisation sur des serveurs[9].

Historique

modifier

L'assembleur V8 est basé sur l'assembleur Strongtalk[10]. Le nom fait référence aux puissants moteurs V8 de voitures sportives[11]. Le 7 décembre 2010, une nouvelle infrastructure de compilation appelée Crankshaft a été publiée, avec des améliorations sur la vitesse[12]. Depuis la version 41 de Chrome en 2015, le projet TurboFan a été ajouté pour permettre plus de vitesse, par exemple pour asm.js[13].

En 2016, l'interpréteur Ignition a été ajouté à V8 dans le but de réduire la mémoire utilisée par les téléphones Android à mémoire réduite par rapport à TurboFan et Crankshaft[14].

En 2017, V8 a livré un tout nouveau pipeline de compilateur, composé d'Ignition (l'interpréteur) et de TurboFan (le compilateur d'optimisation). À partir de la version V9 5.9, Full-codegen et Crankshaft ne sont plus utilisés dans V8 pour l'exécution de JavaScript, car l'équipe estime ne plus être en mesure de suivre le rythme des nouvelles fonctionnalités du langage JavaScript et des optimisations requises [15].

Utilisation

modifier

V8 est destiné à être utilisé à la fois dans un navigateur et en tant que moteur autonome hautes performances pouvant être intégré à des projets indépendants. V8 est utilisé dans les logiciels suivants :

Voir également

modifier

Références

modifier
  1. « Chrome Platform Status » (consulté le 29 juin 2023)
  2. « Discontinuing release blog posts », 17 juin 2022 (consulté le 19 juin 2023)
  3. Lenssen, « Google on Google Chrome - comic book », Google Blogoscoped, Google, 1er septembre 2008 (consulté le 17 août 2010)
  4. Minto, « The genius behind Google’s web browser », Financial Times, 27 mars 2009 (consulté le 17 août 2010)
  5. « A game changer for interactive performance », Chromium Blog, Google (consulté le 1er mai 2012)
  6. « Port of Google V8 javascript engine to PowerPC®. Contribute to ibmruntimes/v8ppc development by creating an account on GitHub », sur GitHub, 21 avril 2019
  7. « Port of Google V8 JavaScript engine to z/OS. The Linux on Z port is maintained in the community: https://chromium.googlesource.com/v8/v8.git: ibmruntimes/v8z », sur GitHub, 2 avril 2019
  8. mhdawson, « PPC support for Google V8 goes mainstream », 30 juin 2015
  9. « V8 Changelog v3.8.2 », Google (consulté le 23 octobre 2012)
  10. « V8 JavaScript Engine: License » [archive du 22 juillet 2010], Google Code, Google (consulté le 17 août 2010)
  11. « Celebrating 10 years of V8 · V8 », sur v8.dev (consulté le 21 avril 2021)
  12. « A New Crankshaft for V8 », Chromium Blog, Google, 7 décembre 2010 (consulté le 22 avril 2011)
  13. « Revving up JavaScript performance with TurboFan », 7 juillet 2015 (consulté le 5 mars 2016)
  14. « BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8 », 26 juin 2016 (consulté le 2 septembre 2016)
  15. « Launching Ignition and TurboFan », 16 mai 2017 (consulté le 13 juillet 2017)
  16. Jolie O'Dell, « Why Everyone Is Talking About Node », Mashable, 10 mars 2011
  17. « NativeScript Android Runtime Overview »

📚 Artikel Terkait di Wikipedia

JavaScript

Ne doit pas être confondu avec Java (langage). JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives

Moteur JavaScript

d'exécution du code JavaScript. JavaScriptCore, également connu sous les noms SquirrelFish et Nitro, utilisé sur le navigateur Safari. V8, open source, développé

V8

V8, un autobus du constructeur algérien SNVI. V8, une marque américaine de jus de légumes appartenant au groupe Campbell's. V8, un moteur JavaScript de

Google Chrome

WebKit ; un nouveau moteur JavaScript baptisé V8, annoncé comme très performant grâce à : une compilation à la volée du code JavaScript en langage machine ;

Node.js

projets en C, Lua et Haskell, mais, quand le moteur V8 fut diffusé, il commença à s'intéresser à JavaScript. Même si son idée d'origine était d'utiliser des

SpiderMonkey

incomplète. Votre aide est la bienvenue ! Comment faire ? Moteur JavaScript V8 JavaScript OSA, un langage de communication inter-processus pour SpiderMonkey

Spécification de JavaScript

de mettre en place des langages de script tel que l'ActionScript ou le JavaScript. Ce dernier est actuellement le langage le plus utilisé pour les applications

Bun (logiciel)

Node.js et Deno qui utilisent la machine virtuelle V8, Bun utilise JavaScriptCore comme moteur JavaScript. Bun prend en charge le bundling, la minification