Novedades en el motor de JavaScript V8 de Google

La versión beta V8 7.4 ya está disponible, con el potencial de expandir la huella del motor a plataformas como Apple iOS. V8 es el motor de código web y JavaScript de código abierto de Google para el navegador Chrome. Es un elemento básico tanto en el navegador Chrome como en el tiempo de ejecución de Node.js JavaScript.

Dónde descargar Google V8

Puede descargar la versión de producción de Google V8 desde el repositorio de Chromium V8.

Versión futura: Novedades en la versión 7.4 de V8

Con la versión de producción prevista para abril de 2019, Google V8 beta 7.4 tiene las siguientes características nuevas:

  • V8 sin JIT, en el que se admite la ejecución de JavaScript sin asignar memoria ejecutable en tiempo de ejecución. Esto podría permitir la expansión de V8 en plataformas como Apple iOS, televisores inteligentes y consolas de juegos. La configuración predeterminada de V8 se ha basado en la capacidad de asignar y modificar la memoria ejecutable en tiempo de ejecución. Pero hay situaciones en las que puede ser deseable ejecutar el motor sin asignar memoria ejecutable, como plataformas que han prohibido el acceso de escritura a la memoria no ejecutable para aplicaciones no privilegiadas, incluido iOS. Además, si no se permiten las escrituras en la memoria ejecutable, se reduce la superficie de ataque de la aplicación con fines de explotación. Con el modo sin JIT, V8 cambia a un modo solo de intérprete para JavaScript; Actualmente, WebAssembly no admite este modo. Sin embargo, el modo sin JIT viene con una penalización de rendimiento.
  • Los subprocesos / atómicos de WebAssembly ahora están habilitados en sistemas operativos que no son Android. Este movimiento desbloquea el uso de múltiples núcleos a través de WebAssembly, permitiendo nuevos usos pesados ​​de computación en la web.
  • Para mejorar el rendimiento, la versión 7.4 omite la adaptación de argumentos en algunos casos, reduciendo la sobrecarga de llamadas en un 60 por ciento.
  • Se ha mejorado el rendimiento para llamar a los accesores nativos, que son los accesores DOM.
  • El rendimiento del preparser se mejoró al eliminar una deduplicación que involucra nombres de propiedades. Además, se solucionó un problema de rendimiento que involucraba la decodificación UTF-8 personalizada utilizada por la secuencia de origen.
  • Para reducir la sobrecarga de memoria, se ha implementado el soporte para vaciar el código de bytes compilado de las funciones durante la recolección de basura si no se han ejecutado recientemente.
  • Para admitir campos de clase privados, los desarrolladores pueden marcar un campo como privado anteponiéndolo con el # prefijo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *