Maison  >  Article  >  interface Web  >  Quel est le moteur v8 dans nodejs

Quel est le moteur v8 dans nodejs

青灯夜游
青灯夜游original
2021-11-23 13:47:492897parcourir

Dans nodejs, le moteur V8 est l'interpréteur pour l'exécution de JavaScript et est un moteur JavaScript développé en "C++" et est utilisé dans Google Chrome ; Avant d'exécuter JavaScript, V8 le compilera en code machine natif et utilisera des méthodes telles que la mise en cache en ligne pour améliorer les performances.

Quel est le moteur v8 dans nodejs

L'environnement d'exploitation de ce tutoriel : système windows7, nodejs version 12.19.0, ordinateur DELL G3.

Présentation de NodeJS

Selon l'Encyclopédie Baidu, Node.js est une boîte à outils JavaScript pour écrire des serveurs réseau hautes performances. Node.js est une plate-forme capable de créer rapidement des services et des applications réseau. La plate-forme est basée sur le moteur d'exécution JavaScript de Chrome, ce qui signifie qu'elle encapsule en fait le moteur Google V8 (utilisé dans le navigateur Google Chrome). Le moteur V8 exécute Javascript très rapidement et offre de très bonnes performances.

NodeJS ne fournit pas d'encapsulation simple, puis ne fournit pas d'appels API. Si tel était le cas, il ne serait pas aussi populaire qu'aujourd'hui. Node a optimisé certains cas d'utilisation spéciaux et fourni des API alternatives pour améliorer le fonctionnement de la V8 dans des environnements sans navigateur. Par exemple, dans un environnement serveur, le traitement des données binaires est souvent essentiel, mais Javascript ne le prend pas suffisamment en charge. Par conséquent, V8.Node ajoute la classe Buffer pour traiter les données binaires de manière pratique et efficace. Par conséquent, Node utilise non seulement simplement le V8, mais l’optimise également pour le rendre plus puissant dans divers environnements.

Présentation JIT de compilation JIT

V8 utilise la technologie de compilation juste à temps (JIT) pour compiler directement le code JavaScript dans le code machine de la plate-forme locale. D'un point de vue macro, les étapes sont le code source JavaScript -> arbre de syntaxe abstraite -> code machine local, et cette dernière étape ne dépend que de l'étape précédente. Ceci est différent des autres interpréteurs.Par exemple, le langage Java doit d'abord compiler le code source en bytecode, puis l'interpréter et l'exécuter pour la JVM. La JVM compile sélectivement une partie du bytecode en code machine local pendant le fonctionnement. stratégie d'optimisation. Le V8 ne génère pas de code intermédiaire. Il est compilé en code machine en une seule étape et le CPU démarre l'exécution. Par rapport à la méthode de génération de code intermédiaire pour l'interprétation et l'exécution, la stratégie de V8 permet d'économiser une étape et le programme commencera à s'exécuter plus tôt. Et l’exécution d’instructions machine compilées est plus rapide que l’interprétation et l’exécution de code intermédiaire. L’inconvénient est que l’absence d’une représentation intermédiaire du bytecode rend l’optimisation du code plus difficile.

Présentation du V8

V8 est un moteur JavaScript qui servait à l'origine le navigateur Google Chrome. Il a été publié avec la première version de Chrome et open source. Il compte désormais de nombreux autres utilisateurs en plus du navigateur Chrome. Tels que NodeJS, MongoDB, CouchDB, etc.

V8 est développé en C++ et utilisé dans Google Chrome. Avant d'exécuter JavaScript, au lieu que d'autres moteurs JavaScript le convertissent en bytecode ou l'interprètent pour l'exécution, V8 le compile en code machine natif (processeurs IA-32, x86-64, ARM ou MIPS) et utilise les méthodes suivantes telles que la mise en cache en ligne. peut être utilisé pour améliorer les performances. Grâce à ces fonctionnalités, les programmes JavaScript s'exécutent aussi rapidement que les programmes binaires sous le moteur V8.

V8 implémente ECMAScript comme spécifié dans ECMA-262, version 3 fonctionnant sous Windows XP et Vista, Mac OS Peut être intégré dans n'importe quelle application C++ Le projet est hébergé sur Google Code [1], basé sur le protocole BSD, et n'importe quel. une organisation ou un individu peut utiliser son code source dans ses propres projets

Pour plus de connaissances sur les nœuds, veuillez visiter :

nodejs

 !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn