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

Nashorn (moteur JavaScript)

lightweight high-performance JavaScript runtime in Java with a native JVM » (en) « JEP 335: Deprecate the Nashorn JavaScript Engine », 8 mai 2018 (consulté

Erreur HTTP 404

journaux des serveurs Web comme Awstats, ou bien encore sur le langage JavaScript comme Matomo. Il est préférable d’utiliser un code d’en-tête 410 lorsque

Nanojit

code natif pour l'exécution sur un processeur. (en) a quick note on JavaScript engine components, Christopher Blizzard « Nanojit - Archive of obsolete content

React

React (aussi appelé React.js ou ReactJS) est une bibliothèque open source JavaScript pour créer des interfaces utilisateurs. Elle est maintenue par Meta (anciennement

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é

TraceMonkey

note on JavaScript engine components, Christopher Blizzard. (en) Starting JägerMonkey, David Mandelin. Tamarin, la machine virtuelle JavaScript devant

Loi de Wirth

Vista. (en) Nero 7 Ultra Edition review, 9 octobre 2005. JavaScript engine#The JavaScript engine race: 2008 and 2009 (en). Jérôme Cartegini, « Comparatif

Optimisation pour les moteurs de recherche

(en) « Search Engine Market Share Worldwide » [« Part de marché des moteurs de recherche dans le monde en 2009 »] (en) « Search Engine Market Share Worldwide »