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

Google Chrome

Blog, Blink: A rendering engine for the Chromium project, 3 avril 2013. (en) « Design Elements - Google V8 JavaScript Engine », sur Google Code (consulté

Asm.js

spécifiques asm.js à partir de la version 22. Les optimisations du moteur JavaScript V8 présent dans Chrome 28 ont permis de doubler les performances obtenues

TraceMonkey

alternatif pour le moteur d'exécution JavaScript SpiderMonkey de Firefox. V8, le moteur d'exécution Javascript à haute performance inclus dans Google

Opera

feuilles de style CSS, de l'interpréteur JavaScript et du support de DOM. Le support de ce dernier, couplé à JavaScript permet de rendre l'interprétation des

SpiderMonkey

Acrobat et Adobe Reader. SpiderMonkey est aussi le moteur JavaScript pour Yahoo! Widget Engine (connu autrefois sous le nom de Konfabulator) et UOX3 (UOX)

Signal (application)

2026) (en) signalapp, « Release v8.14.0 · signalapp/Signal-Desktop » (consulté le 11 juin 2026) (en) signalapp, « Release v8.14.3 · signalapp/Signal-Android »

C10k problem

(software) (en). Node.js est un framework JavaScript server utilisé au-dessus de Google V8, le très performant moteur Javascript open source implémenté dans le navigateur

Rust (langage)

production en 2019. Deno, un runtime sécurisé pour JavaScript et TypeScript, est construit au-dessus de V8 en utilisant Rust et Tokio. D'autres adoptions