Seidor
reunión de personas

05 juin 2024

V8, le moteur de code développé par Google

Javascript est devenu le langage de programmation le plus important dans le monde du développement web ; il nous permet de créer une application web en utilisant ce même langage non seulement pour développer la partie frontale du site, mais aussi la partie back-end.

Il est déjà récurrent d'entendre des nouvelles informant de nouvelles bibliothèques ou frameworks dédiés à améliorer ou étendre la fonctionnalité de Javascript.

C'est pourquoi, en 2008, coïncidant avec le lancement du navigateur le plus utilisé actuellement : Google Chrome, Google a créé son propre interprète de code Javascript et l'a appelé V8.

Mais, comment cela fonctionne-t-il et pourquoi un navigateur a-t-il besoin d'un interprète ?

Bien ; lorsque l'on accède à un site web depuis un navigateur, celui-ci nécessite le téléchargement de tous les fichiers .js, pour avoir la notion de toutes les instructions à exécuter. Pour cela, et comme les navigateurs ne comprennent que les instructions en code-machine, il nécessite un système interprète qui puisse "traduire" toutes ces instructions pour qu'elles puissent être comprises et ensuite exécutées par le navigateur.

Eh bien, le responsable de l'interprétation des instructions de code Javascript dans Google Chrome et de l'utilisation de processus connus sous le nom de JIT Compiler est le V8 Engine.

Le moteur V8 est actuellement, en raison de sa grande stabilité, devenu le moteur de conversion de code Javascript développé en C++ le plus fiable, utilisé dans des outils comme Microsoft Edge, Chrome et NodeJS.

Le moteur V8 de Google convertit les instructions de Javascript en une liste de tokens, qui va ensuite produire un Abstract Syntax Tree, représentant de manière simplifiée le code source écrit en Javascript (dans ce cas), sous forme d'arbre de structure. Par la suite, il passera par l'interprète, qui est celui qui générera le Bytecode et interprétera ensuite ce Bytecode pour pouvoir l'exécuter. Il dispose également de l'optimisation de son compilateur appelé TurboFan, dont la tâche principale est de prendre les instructions traitées et retournées par l'interprète pour les compiler pour la destination.

Il convient également de mentionner qu'à partir de Chrome 66, V8 compile le code source JavaScript dans un thread en arrière-plan, réduisant la quantité de temps consacrée à la compilation dans le thread principal de 5% à 20%.

De cette manière, il révolutionne la manière de traiter Javascript, en pouvant l'exécuter beaucoup plus rapidement en utilisant un interprète pour transformer le code et plus tard un compilateur pour optimiser le résultat final.