V8 (motor JavaScript)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

V8 es un motor JavaScript gratuito y de código abierto desarrollado por Chromium Project para los navegadores web Google Chrome y Chromium. El creador del proyecto es Lars Bak. La primera versión del motor V8 se lanzó al mismo tiempo que la primera versión de Chrome: el 2 de septiembre de 2008. También se ha utilizado en el lado del servidor, por ejemplo, en Couchbase y Node.js.

Historia

El ensamblador V8 se basa en el ensamblador Strongtalk. El 7 de diciembre de 2010, se lanzó una nueva infraestructura de compilación denominada Crankshaft, con mejoras de velocidad. En la versión 41 de Chrome en 2015, se agregó el proyecto TurboFan para proporcionar más mejoras de rendimiento con cargas de trabajo que antes eran desafiantes, como asm.js. Gran parte del desarrollo de V8 está fuertemente inspirado en la máquina virtual Java HotSpot desarrollada por Sun Microsystems, y las canalizaciones de ejecución más nuevas son muy similares a las de HotSpot.

En 2016, el intérprete Ignition se agregó a V8 con el objetivo de diseño de reducir el uso de memoria en teléfonos Android con poca memoria en comparación con TurboFan y Crankshaft. Ignition es una máquina basada en registros y comparte un diseño similar (aunque no exactamente el mismo) al intérprete de plantillas utilizado por HotSpot.

En 2017, V8 envió una tubería de compilación completamente nueva, que consta de Ignition (el intérprete) y TurboFan (el compilador de optimización). A partir de la versión 5.9 de V8, Full-codegen (el compilador básico inicial) y Crankshaft ya no se usan en V8 para la ejecución de JavaScript, ya que el equipo creía que ya no podían seguir el ritmo de las nuevas funciones del lenguaje JavaScript y las optimizaciones que requerían esas funciones..

En 2021, se introdujo una nueva canalización de compilación por niveles con el lanzamiento del compilador SparkPlug, que complementa el compilador TurboFan existente dentro de V8, en un paralelo directo con el compilador C1 de generación de perfiles utilizado por HotSpot.

Diseño

V8 primero genera un árbol de sintaxis abstracta con su propio analizador. Luego, Ignition genera código de bytes a partir de este árbol de sintaxis usando el formato de código de bytes interno V8. TurboFan compila este código de bytes en código de máquina. En otras palabras, V8 compila ECMAScript directamente en código de máquina nativo mediante compilación justo a tiempo antes de ejecutarlo. El código compilado también se optimiza (y se vuelve a optimizar) dinámicamente en tiempo de ejecución, en función de la heurística del perfil de ejecución del código. Las técnicas de optimización utilizadas incluyen inserción, elisión de costosas propiedades de tiempo de ejecución y almacenamiento en caché en línea. El recolector de basura es un recolector incremental generacional.

Uso

V8 puede compilar en arquitecturas de conjunto de instrucciones x86, ARM o MIPS en sus ediciones de 32 y 64 bits; además, se ha portado a PowerPC e IBM s390 para su uso en servidores.

V8 puede usarse en un navegador o integrarse en proyectos independientes. V8 se utiliza en el siguiente software:

  • Navegadores web basados ​​en Chromium: Google Chrome, Brave, Opera, Vivaldi y Microsoft Edge.
  • Servidor de base de datos de Couchbase
  • Entorno de tiempo de ejecución de Deno
  • Marco de aplicación de escritorio Electron, utilizado por los editores de texto Atom y Visual Studio Code
  • Servidor de base de datos MarkLogic
  • Marco de aplicaciones móviles NativeScript
  • Entorno de tiempo de ejecución de Node.js
  • Entorno de tiempo de ejecución Qt Quick

Contenido relacionado

IBM 7030 estiramiento

La IBM 7030, también conocida como Stretch, fue la primera supercomputadora transistorizada de IBM. Fue la computadora más rápida del mundo desde 1961...

Conexión persistente HTTP

La conexión persistente HTTP, también llamada HTTP keep-alive o reutilización de la conexión HTTP es la idea de usar una única conexión TCP para enviar...

Compilador-optimizador

En informática, un compilador optimizador es un compilador que intenta minimizar o maximizar algunos atributos de un programa informático ejecutable. Los...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save