V8 est un moteur JavaScript open-source développé par le projet Chromium pour les navigateurs Web Google Chrome et Chromium. Le créateur du projet est Lars Bak. La première version du moteur V8 a été publiée en même temps que la première version de Chrome, le . Il a également été utilisé dans Couchbase, MongoDB et Node.js côté serveur.
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.
V8 peut compiler vers x86, ARM ou MIPS dans leurs éditions et ; de plus, il a été porté sur PowerPC et IBM S/390 pour une utilisation sur des serveurs.
Historique L'assembleur V8 est basé sur l'assembleur Strongtalk. Le nom fait référence aux puissants moteurs V8 de voitures sportives. Le , une nouvelle infrastructure de compilation appelée Crankshaft a été publiée, avec des améliorations sur la vitesse. Depuis la de Chrome en 2015, le projet TurboFan a été ajouté pour permettre plus de vitesse, par exemple pour asm.js.
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.
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 .
Utilisation 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 :
Google Chrome et tous les autres navigateurs Web à base de chrome, y compris Microsoft Edge, Brave, Opera et Vivaldi Base de données Couchbase Environnement d'exécution Node.js Structure logicielle Electron, composant sous-jacent des éditeurs de texte Atom et Visual Studio Code NativeScript, infrastructure pour la création d'applications mobiles véritablement natives avec JavaScript MarkLogic Server, une base de données orientée document
Voir également SpiderMonkey Blink - le moteur de navigateur utilisé conjointement avec V8 dans un navigateur
Références
Catégorie:Logiciel libre sous licence BSD Catégorie:Logiciel Google Catégorie:JavaScript Catégorie:Node.js