V8 Engine por Juanda


Publicado el mié 21 marzo 2018 por Juanda
Actualizado el sáb 03 noviembre 2018 por Juanda
Categoría: desarrollo

Etiquetas: javascript v8 web multiplataforma www aplicacion software


V8 es un motor (máquina virtual, runtime, engine son otros términos que se suelen usar cuando se habla de V8) de Javascript desarrollado por Google con el objetivo de integrarlo en su navegador Chrome.

La primera versión se lanza en 2008 y desde entonces, gracias a la política de distribución como software de fuentes abiertas y con la posibilidad de ser integrado en cualquier tipo de aplicación, se ha utilizado en proyectos tan relevantes como:

  • los navegadores Opera y Vivaldi,
  • la base de datos nosql CouchDB,
  • la plataforma Node.js para el uso de javascript en el servidor,
  • el framework electron para el desarrollo de aplicaciones de escritorio con tecnología web.

Existen implementaciones de V8 para las principales plataformas: Windows, MacOS y Linux, de manera que podemos considerarlo como base para el desarrollo de aplicaciones multiplataforma.

V8 es considerado como uno de los motores Javascript de más alto rendimiento. Basa su funcionamiento en dos componentes: un intérprete denominado ignition y un compilador optimizador de código denominado turbofan .

El intérprete ignition genera los bytecodes de la máquina virtual de Javascript, mientras que el optimizador es un compilador JIT que genera código máquina optimizado para la plataforma en que se ejecute. V8 crea un hilo especial que realiza un profiling de la ejecución del código generado para detectar las partes "calientes", es decir las que más se repiten y consumen más tiempo de CPU para mejorar la optimización del código máquina generado.

Uno de los aspectos más interesantes de V8 es que ha sido diseñado con la idea de usarlo independientemente del navegador e integrarlo en aplicaciones desarrolladas en C/C++. Precisamente esta característica es la que ha permitido el desarrollo del proyecto Node.js, que convierte a Javascript en un lenguaje de propósito general.