¿Qué es Chrome V8?

Chrome V8 ejecuta código JavaScript. Node.js está creado sobre Chrome V8 y es un entorno de ejecución muy utilizado para las funciones JavaScript sin servidor. Sin embargo, ejecutar funciones directamente en V8 tiene sus ventajas.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Definir el motor de JavaScript
  • Más información sobre Chrome V8 y Node.js
  • Entender el papel que Chrome V8 puede desempeñar en las arquitecturas sin servidor

Copiar enlace del artículo

¿Qué es Chrome V8?

Chrome V8 es un motor de JavaScript, lo que significa que ejecuta código JavaScript. Originalmente, se escribió JavaScript para ser ejecutado por los navegadores web. Chrome V8, o simplemente V8, puede ejecutar código JavaScript tanto dentro como fuera de un navegador, lo que hace posible el scripting por parte del servidor.

Como un motor de coche V8 (de ocho cilindros), Chrome V8 es rápido y potente. V8 traduce el código JavaScript directamente a código máquina* para que los ordenadores puedan entenderlo, y luego ejecuta el código traducido, o compilado. V8 también optimiza la ejecución de JavaScript.

*El código máquina es un lenguaje que pueden entender las CPU. Es totalmente digital, es decir, está formado por dígitos.

¿Qué significa compilar?

La compilación es un proceso que traduce el código de un lenguaje de programación a otro. Por lo general, un compilador traduce el código de un nivel de abstracción superior a un nivel de abstracción inferior, de lenguajes utilizables por seres humanos, como JavaScript, a un código legible por máquinas.

Chrome V8 lleva a cabo lo que se denomina compilación justo a tiempo. En lugar de compilar JavaScript por adelantado, compila el código en el mismo momento en el que se ejecuta.

¿Qué son los espacios seguros?

Espacios seguros de Chrome V8

Un "espacio seguro" es un entorno para ejecutar software que está aislado y dividido de otros entornos, incluso de los de la misma máquina.

Los espacios seguros son una función clave de Chrome V8. Cada proceso está aislado, lo que garantiza que las funciones de JavaScript se ejecuten por separado en él y que la ejecución de un fragmento de código no afecte a ningún otro. (A diferencia de muchos productos empresariales de espacios seguros, que abren y ejecutan archivos ejecutables dentro de máquinas virtuales aisladas, los espacios seguros de V8 no reducen el rendimiento).

¿Qué es Node.js?

Node.js es un entorno de ejecución* para ejecutar código JavaScript, y está creado sobre el motor V8 de Chrome. Es asíncrono, lo que significa que no tiene que esperar a que se complete un proceso antes de iniciar otro. Al igual que V8, Node.js es gratuito y de código abierto. A diferencia de V8, no tiene espacios seguros incorporados.

(Quienes estén familiarizados con JavaScript notarán la extensión de archivo '.js'; sin embargo, se trata de una elección puramente estética para que el nombre del entorno de ejecución indique su asociación con JavaScript y no implica que Node.js sea un archivo JavaScript).

*Un entorno de ejecución es el entorno de software en el que se ejecuta el código.

¿Por qué son importantes V8 y Node.js para la informática sin servidor?

Las funciones sin servidor necesitan una forma de ejecutarse cuando se activan. Varios proveedores de informática sin servidor ofrecen Node.js como tiempo de ejecución para funciones sin servidor de JavaScript (para otros lenguajes se utilizan otros tiempos de ejecución).

No obstante, los Cloudflare Workers se ejecutan directamente en V8. Esto tiene sus razones. Una de las razones es la velocidad de ejecución de las funciones que no se han utilizado recientemente. Los arranques en frío son un problema en la informática sin servidor, pero la ejecución de funciones en V8 significa que las funciones pueden ser "hiladas" y ejecutadas, normalmente, en 5 milisegundos o menos. (Node.js tiene más sobrecarga y suele tardar unos milisegundos más.) Otra razón es que V8 mete en un espacio seguro a las funciones JavaScript de forma automática, lo que aumenta la seguridad.