web-dev-qa-db-fra.com

Le ChakraCore de Microsoft offre-t-il des avantages en termes de performances par rapport au V8 de Google lorsqu'il est utilisé comme moteur JS pour Node.js

[J'ai modifié ma question pour limiter le scénario à Node.js. Veuillez le rouvrir. C'est une question utile et des réponses correctes pourraient venir à l'avenir et pas plus tôt car ChakraCore est encore très jeune. Mais cette question est valide et devrait être ici]

Nous avons tous connu/lu/entendu parler du glory du moteur V8 de Google et de la façon dont il a fait de node.js la beauté qu'il est, pendant des années.

Mais maintenant que nous avons la possibilité de choisir entre ChakraCore de Microsoft et V8 de Google comme moteur JavaScript préféré, je me demande si quelqu'un a des preuves ou teste cas où ils en ont trouvé un plus efficace qu'un autre pour nodejs.

Veuillez appuyer votre réponse avec quelques faits et résultats, car quelqu'un ne devrait pas utiliser/choisir Chakra uniquement parce qu'il aime Microsoft ou qu'il en va de même pour V8 et Google.

Merci.

21
Suman Barick

En quoi sont-ils différents?

Alors que la plupart des moteurs JavaScript modernes traduisent tous le code JavaScript en code machine efficace ( source ) , Chakra dispose d'un interprète intelligent et performant -. Cet interprète possède une heuristique intelligente qui peut déterminer s'il faut compiler votre code en code machine ou l'interpréter. Un interpréteur est généralement plus rapide à démarrer et nécessite moins de mémoire pour fonctionner, ce qui rend Chakra très attrayant pour les environnements à ressources limitées (comme un Raspberry Pi ).

En 2015, Microsoft a introduit la prise en charge de Node.js avec Chakra pour permettre aux développeurs de cibler la plate-forme Windows IoT Core . Le récent open-sourcing de ChakraCore a permis à Microsoft de se développer à l'air libre et de mieux s'aligner sur les calendriers de sortie de Node.js.

Dans un récent épisode JavaScript Air , Steve Lucco a mentionné que l'équipe de Chakra prévoit de "vraiment prendre la communauté au sérieux et prendre au sérieux leur contribution en termes de direction dans laquelle le moteur ira [et] donner beaucoup à la communauté plus d'entrée que, par exemple, ils ont eu dans le sens de V8 ".

En s'efforçant de créer un moteur JavaScript efficace en mémoire, Microsoft a en fait construit un moteur compétitif rapide. À l'époque ( cet article a été écrit, Chakra surperformé V8 dans certains cas:


(source: msecnd.net )

Les benchmarks ne sont pas nécessairement indicatifs des performances du monde réel, mais cette compétition dans les performances de VM conduira finalement à un runtime Node.js plus rapide pour les utilisateurs de toutes les VM.

Il convient également de mentionner que le fait d'avoir leur propre moteur JavaScript permettra à Microsoft d'innover librement. L'une des premières innovations est débogage de voyage dans le temps .

23
Alex Booker

En quoi sont-ils différents?

Eh bien, la question est un peu trop large pour y répondre actuellement dans le format mais je vais essayer d'y répondre.

Le moteur V8 de Google possède toutes les fonctionnalités nécessaires pour obtenir des performances extrêmement rapides. Donc, fondamentalement, celui-ci est la base des nodejs pendant un bon moment et il sera là à long terme.

D'autre part ChakraCore de Microsoft est également activement développé et il a une structure à deux couches (impossible pour le nommer) avec Chakra Shim et = ChakraCore.
Chose à remarquer Chakra Shim implémente le plus essentiel API V8 afin que le changement de moteur JavaScript sous-jacent soit transparent pour Node.js et d'autres modules complémentaires natifs écrits pour V8.

Source: NodeJs-ChakraCore

Pour OP: recherchez également webassembly .

5
Jai