javascript c++ node.js v8 chakra

javascript - ¿El ChakraCore de Microsoft proporciona algún beneficio de rendimiento sobre el V8 de Google cuando se usa como Motor JS para Node.js?



c++ (2)

[ He editado mi pregunta para limitar el escenario a solo Node.js. Por favor, vuelva a abrirlo. Es una pregunta útil y las respuestas correctas pueden venir en el futuro y no antes, ya que ChakraCore se encuentra en una edad muy temprana. Pero esta pregunta es válida y debería estar aquí ]

Todos hemos sabido / leído / escuchado sobre la gloria del motor V8 de Google y cómo ha hecho de node.js la belleza que es, durante años.

Pero ahora que tenemos la opción de elegir entre ChakraCore de Microsoft y V8 de Google como nuestro motor de JavaScript preferido, me pregunto si alguien tiene alguna evidencia, o casos de prueba en los que han encontrado que uno sea más eficiente que otro para nodejs .

Por favor, respalde su respuesta con algunos datos y resultados, porque alguien no debe usar / elegir Chakra solo porque ama a Microsoft o lo mismo se aplica a V8 y Google.

Gracias.


¿Cómo son diferentes?

Mientras que la mayoría de los motores de JavaScript modernos traducen todo el código de JavaScript en un código de máquina eficiente ( source ), Chakra tiene un intérprete inteligente y de alto rendimiento. Este intérprete tiene heurísticas inteligentes que pueden determinar si compilar su código en código de máquina o interpretarlo. Un intérprete suele ser más rápido de iniciar y requiere menos memoria para ejecutarse, lo que hace que Chakra sea muy atractivo para entornos con recursos limitados (como una Raspberry Pi ).

En 2015, Microsoft presentó soporte para Node.js con Chakra para permitir a los desarrolladores apuntar a la plataforma Windows IoT Core . La reciente fuente abierta de ChakraCore ha permitido a Microsoft desarrollarse de forma abierta y alinearse mejor con los programas de lanzamiento de Node.js.

En un episodio reciente de JavaScript Air , Steve Lucco mencionó que el equipo de Chakra está planeando "realmente tomar en serio a la comunidad y tomar en serio su aporte en cuanto a la dirección que tomará el motor [y] dar a la comunidad un mayor aporte que". Por ejemplo, han tenido en la dirección de V8 " .

Al esforzarse por construir un motor de JavaScript eficiente en memoria, Microsoft ha creado uno rápido y competitivo. En el momento en que se escribió este artículo , Chakra superó a V8 en algunos casos:

Los puntos de referencia no son necesariamente indicativos del rendimiento en el mundo real, pero esta competencia en el desempeño de máquinas virtuales eventualmente llevará a un tiempo de ejecución más rápido de Node.js para los usuarios de todas las máquinas virtuales.

También vale la pena mencionar que tener su propio motor de JavaScript permitirá a Microsoft innovar libremente. Una de las primeras innovaciones es la depuración del viaje en el tiempo .


¿Cómo son diferentes?

Bueno, la pregunta es demasiado amplia para responder actualmente en el formato, pero intentaré responderla.

El motor V8 de Google tiene todas las características que se requieren para tener un rendimiento increíblemente rápido. Entonces, básicamente esta es la base para los nodejs durante bastante tiempo y estará allí para el largo plazo.

Por otro lado , ChakraCore de Microsoft también se ha desarrollado activamente y tiene una estructura de dos capas (no se puede nombrar) con Chakra Shim y ChakraCore .
Lo que hay que notar es que Chakra Shim implementa las API de V8 más esenciales para que el cambio del motor de JavaScript subyacente sea transparente para Node.js y otros módulos de complementos nativos escritos para V8.

Fuente: NodeJs-ChakraCore

Para OP: Busque el webassembly también.