Saltar al contenido principal

Lanzamiento de V8 v5.7

· 4 min de lectura
el equipo de V8

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se ramifica desde el repositorio maestro de Git de V8 inmediatamente antes de un hito Beta de Chrome. Hoy nos complace anunciar nuestra nueva rama, V8 versión 5.7, que estará en beta hasta que sea lanzada en coordinación con Chrome 57 Estable en varias semanas. V8 5.7 está llena de todo tipo de beneficios visibles para los desarrolladores. Nos gustaría ofrecerte un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento.

Mejoras de rendimiento

Funciones async nativas tan rápidas como las promesas

Las funciones async ahora son aproximadamente tan rápidas como el mismo código escrito con promesas. El rendimiento de ejecución de las funciones async se cuadruplicó según nuestros microbenchmarks. Durante el mismo período, el rendimiento general de las promesas también se duplicó.

Mejoras de rendimiento de Async en V8 sobre Linux x64

Continuas mejoras en ES2015

V8 sigue haciendo que las características del lenguaje ES2015 sean más rápidas para que los desarrolladores las utilicen sin incurrir en costos de rendimiento. El operador de propagación, la desestructuración y los generadores ahora son aproximadamente tan rápidos como sus equivalentes ingenuos en ES5.

RegExp un 15% más rápido

La migración de las funciones RegExp de una implementación en JavaScript autoalojada a una que se conecta con la arquitectura de generación de código de TurboFan ha generado un ~15% más de rendimiento general en RegExp. Más detalles pueden encontrarse en la publicación de blog dedicada.

Características del lenguaje JavaScript

En esta versión se incluyen varios añadidos recientes a la biblioteca estándar de ECMAScript. Dos métodos de String, padStart y padEnd, brindan características útiles de formateo de cadenas, mientras que Intl.DateTimeFormat.prototype.formatToParts permite a los autores personalizar el formato de fechas/horas de manera sensible a la configuración regional.

WebAssembly habilitado

Chrome 57 (que incluye V8 v5.7) será la primera versión en habilitar WebAssembly por defecto. Para más detalles, consulta los documentos de inicio en webassembly.org y la documentación de la API en MDN.

Adiciones a la API de V8

Por favor, consulta nuestro resumen de cambios en la API. Este documento se actualiza regularmente unas semanas después de cada lanzamiento importante. Los desarrolladores con un checkout activo de V8 pueden usar git checkout -b 5.7 -t branch-heads/5.7 para experimentar con las nuevas características en V8 v5.7. Alternativamente, puedes suscribirte al canal Beta de Chrome y probar las nuevas características tú mismo pronto.

PromiseHook

Esta API en C++ permite a los usuarios implementar código de perfilado que rastrea el ciclo de vida de las promesas. Esto habilita la próxima API AsyncHook de Node que permite construir propagación de contexto async.

La API PromiseHook proporciona cuatro ganchos de ciclo de vida: init, resolve, before y after. El gancho init se ejecuta cuando se crea una nueva promesa; el gancho resolve se ejecuta cuando una promesa se resuelve; los ganchos pre y post se ejecutan justo antes y después de un PromiseReactionJob. Para más información, consulta el issue de seguimiento y el documento de diseño.