Saltar al contenido principal

Análisis extremadamente rápido, parte 1: optimizando el escáner

· 12 min de lectura
Toon Verwaest ([@tverwaes](https://twitter.com/tverwaes)), optimizador escandaloso

Para ejecutar un programa de JavaScript, el texto fuente necesita ser procesado para que V8 pueda entenderlo. V8 comienza analizando el texto fuente en un árbol de sintaxis abstracta (AST), un conjunto de objetos que representan la estructura del programa. Ese AST se compila en bytecode mediante Ignition. El rendimiento de estas fases de análisis + compilación es importante: V8 no puede ejecutar código antes de que la compilación esté terminada. En esta serie de publicaciones en el blog, nos enfocamos en el análisis y el trabajo realizado en V8 para entregar un analizador extremadamente rápido.

Lanzamiento de V8 v7.4

· 9 min de lectura
Georg Neis

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se deriva del maestro de Git de V8 inmediatamente antes de un hito de Chrome Beta. Hoy nos complace anunciar nuestra nueva rama, V8 versión 7.4, que está en beta hasta su lanzamiento en coordinación con Chrome 74 Stable en varias semanas. V8 v7.4 está repleto de todo tipo de beneficios para desarrolladores. Esta publicación ofrece un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento.

V8 sin JIT

· 4 min de lectura
Jakob Gruber ([@schuay](https://twitter.com/schuay))

V8 v7.4 ahora admite la ejecución de JavaScript sin asignar memoria ejecutable en tiempo de ejecución.

En su configuración predeterminada, V8 depende en gran medida de la capacidad de asignar y modificar memoria ejecutable en tiempo de ejecución. Por ejemplo, el compilador optimizador TurboFan crea código nativo para funciones de JavaScript (JS) calientes justo a tiempo, y la mayoría de las expresiones regulares de JS se compilan a código nativo por el motor irregexp. Crear memoria ejecutable en tiempo de ejecución es parte de lo que hace que V8 sea rápido.

Lanzamiento de V8 v7.3

· 4 min de lectura
Clemens Backes, encargado del compilador

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se ramifica desde el maestro de Git de V8 inmediatamente antes de un hito de Chrome Beta. Hoy nos complace anunciar nuestra rama más reciente, V8 versión 7.3, que está en beta hasta su lanzamiento en coordinación con Chrome 73 Stable en varias semanas. V8 v7.3 está llena de toda clase de novedades orientadas a desarrolladores. Esta publicación proporciona una vista previa de algunos de los aspectos destacados en anticipación al lanzamiento.

Hablar basura: el recolector de basura Orinoco

· 15 min de lectura
Peter ‘el basurero’ Marshall ([@hooraybuffer](https://twitter.com/hooraybuffer))

En los últimos años, el recolector de basura (GC) de V8 ha cambiado mucho. El proyecto Orinoco ha transformado un recolector de basura secuencial que detenía completamente la ejecución en un recolector mayormente paralelo y concurrente con retroceso incremental.

Lanzamiento de V8 v7.2

· 5 min de lectura
Andreas Haas, manejador de trampas

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se deriva de la rama principal de Git de V8 inmediatamente antes de un hito Beta de Chrome. Hoy nos complace anunciar nuestra rama más reciente, V8 versión 7.2, que está en beta hasta su lanzamiento en coordinación con Chrome 72 Estable en varias semanas. V8 v7.2 está lleno de todo tipo de herramientas orientadas a desarrolladores. Esta publicación proporciona un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento.

Acelerando los elementos extendidos

· 10 min de lectura
Hai Dang & Georg Neis

Durante sus tres meses de prácticas en el equipo de V8, Hai Dang trabajó en mejorar el rendimiento de [...array], [...string], [...set], [...map.keys()] y [...map.values()] (cuando los elementos extendidos están al inicio del literal de array). Incluso hizo que Array.from(iterable) fuese mucho más rápido. Este artículo explica algunos de los detalles de sus cambios, que están incluidos en V8 a partir de la versión 7.2.

Funciones asíncronas y promesas más rápidas

· 20 min de lectura
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), anticipadora siempre a la espera, y Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), prometedor profesional de rendimiento

El procesamiento asíncrono en JavaScript tradicionalmente tenía la reputación de no ser particularmente rápido. Para empeorar las cosas, depurar aplicaciones JavaScript en vivo — en particular servidores Node.js — no es una tarea fácil, especialmente cuando se trata de programación asíncrona. Afortunadamente, los tiempos están cambiando. Este artículo explora cómo optimizamos las funciones asíncronas y las promesas en V8 (y hasta cierto punto en otros motores de JavaScript), y describe cómo mejoramos la experiencia de depuración para el código asíncrono.

Lanzamiento de V8 v7.1

· 4 min de lectura
Stephan Herhut ([@herhut](https://twitter.com/herhut)), clonador clonado de clones

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se deriva del maestro de Git de V8 justo antes de un hito de Chrome Beta. Hoy estamos encantados de anunciar nuestra última rama, V8 versión 7.1, que está en beta hasta su lanzamiento en coordinación con Chrome 71 Stable en varias semanas. V8 v7.1 está lleno de todo tipo de novedades para los desarrolladores. Este artículo ofrece un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento.

Lanzamiento de V8 versión v7.0

· 3 min de lectura
Michael Hablich

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se deriva del maestro de Git de V8 inmediatamente antes de un hito de Chrome Beta. Hoy nos complace anunciar nuestra rama más reciente, V8 versión 7.0, que está en beta hasta su lanzamiento en coordinación con Chrome 70 Stable en varias semanas. V8 v7.0 está lleno de todo tipo de novedades para los desarrolladores. Esta publicación ofrece un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento.