Saltar al contenido principal

Extras de V8

· 6 min de lectura
Domenic Denicola ([@domenic](https://twitter.com/domenic)), Experto en Streams

V8 implementa un gran subconjunto de los objetos y funciones integrados del lenguaje JavaScript en el propio JavaScript. Por ejemplo, puedes ver nuestra implementación de promesas escrita en JavaScript. Estos integrados se denominan autoalojados. Estas implementaciones se incluyen en nuestra instantánea de inicio para que se puedan crear nuevos contextos rápidamente sin necesidad de configurar e inicializar los integrados autoalojados en tiempo de ejecución.

Lanzamiento de V8 v4.9

· 6 min de lectura
el equipo de V8

Aproximadamente cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se deriva del maestro Git de V8 inmediatamente antes de que Chrome genere una rama para un hito en Chrome Beta. Hoy estamos encantados de anunciar nuestra rama más reciente, V8 versión 4.9, que estará en beta hasta que sea lanzada en coordinación con la versión estable de Chrome 49. V8 4.9 está llena de todo tipo de mejoras dirigidas a desarrolladores, por lo que nos gustaría ofrecerte un adelanto de algunos de los aspectos destacados en anticipación a su lanzamiento dentro de varias semanas.

Hay `Math.random()`, y luego hay `Math.random()`

· 5 min de lectura
Yang Guo ([@hashseed](https://twitter.com/hashseed)), ingeniero de software y diseñador de dados

Math.random() devuelve un valor de tipo Number con signo positivo, mayor o igual a 0 pero menor que 1, elegido aleatoriamente o pseudo-aleatoriamente con una distribución aproximadamente uniforme en ese rango, utilizando un algoritmo o estrategia dependiente de la implementación. Esta función no toma argumentos.

Lanzamiento de V8 v4.8

· 3 min de lectura
el equipo de V8

Aproximadamente cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se ramifica desde el maestro Git de V8 inmediatamente antes de que Chrome se ramifique para un hito de Chrome Beta. Hoy nos complace anunciar nuestra nueva rama, V8 versión 4.8, que estará en beta hasta que se libere en coordinación con Chrome 48 Estable. V8 4.8 contiene un puñado de características orientadas a desarrolladores, así que nos gustaría ofrecerles un adelanto de algunos de los aspectos destacados anticipándonos al lanzamiento en unas semanas.

Caza Jank Parte Uno

· 5 min de lectura
los cazadores de jank: Jochen Eisinger, Michael Lippautz, y Hannes Payer

El jank, o en otras palabras los tartamudeos visibles, puede notarse cuando Chrome no logra renderizar un cuadro dentro de 16.66 ms (interrumpiendo el movimiento de 60 cuadros por segundo). Hasta hoy, la mayoría del trabajo de recolección de basura de V8 se realiza en el hilo principal de renderización, véase la Figura 1, a menudo resultando en jank cuando hay demasiados objetos que necesitan ser mantenidos. Eliminar el jank siempre ha sido una alta prioridad para el equipo de V8 (1, 2, 3). Este artículo discute algunas optimizaciones que se implementaron entre Chrome 41 y Chrome 46 que reducen significativamente las pausas de recolección de basura, resultando en una mejor experiencia de usuario.

Lanzamiento de V8 v4.7

· 2 min de lectura
el equipo de V8

Aproximadamente cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se ramifica desde el master de Git de V8 inmediatamente antes de que Chrome se ramifique para un hito de Chrome Beta. Hoy estamos encantados de anunciar nuestra rama más reciente, V8 versión 4.7, que estará en beta hasta que se lance en coordinación con Chrome 47 Stable. V8 v4.7 está lleno de todo tipo de novedades para los desarrolladores, así que nos gustaría darles un adelanto de algunos de los aspectos más destacados en anticipación al lanzamiento en varias semanas.

Instantáneas personalizadas de inicio

· 3 min de lectura
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Ingeniero de software y proveedor de precalentadores de motores

La especificación de JavaScript incluye una gran cantidad de funcionalidades integradas, desde funciones matemáticas hasta un motor de expresiones regulares completo. Cada contexto de V8 recién creado tiene estas funciones disponibles desde el inicio. Para que esto funcione, el objeto global (por ejemplo, el objeto window en un navegador) y toda la funcionalidad integrada deben configurarse e inicializarse en el heap de V8 en el momento en que se crea el contexto. Hacer esto desde cero lleva bastante tiempo.

V8 versión v4.6

· 5 min de lectura
el equipo de V8

Aproximadamente 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 que Chrome se ramifique para un hito de Chrome Beta. Hoy nos complace anunciar nuestra rama más reciente, V8 versión 4.6, que estará en beta hasta que se lance en coordinación con Chrome 46 Stable. V8 4.6 está lleno de todo tipo de beneficios para desarrolladores, así que nos gustaría ofrecerte un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento en varias semanas.

Obteniendo recolección de basura gratis

· 10 min de lectura
Hannes Payer y Ross McIlroy, Recolectores de Basura Inactivos

El rendimiento de JavaScript sigue siendo uno de los aspectos clave de los valores de Chrome, especialmente cuando se trata de ofrecer una experiencia fluida. A partir de Chrome 41, V8 aprovecha una nueva técnica para aumentar la capacidad de respuesta de las aplicaciones web ocultando operaciones costosas de gestión de memoria dentro de pequeños fragmentos de tiempo inactivo y no utilizados. Como resultado, los desarrolladores web deberían esperar un desplazamiento más suave y animaciones fluidas con una reducción significativa de los bloqueos debido a la recolección de basura.

Almacenamiento en caché de código

· 2 min de lectura
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Ingeniero de Software

V8 utiliza compilación justo a tiempo (JIT) para ejecutar código JavaScript. Esto significa que inmediatamente antes de ejecutar un script, debe ser analizado y compilado, lo que puede generar una sobrecarga considerable. Como anunciamos recientemente, el almacenamiento en caché de código es una técnica que reduce esta sobrecarga. Cuando un script se compila por primera vez, se generan y almacenan datos en caché. La próxima vez que V8 necesite compilar el mismo script, incluso en una instancia diferente de V8, puede usar los datos en caché para recrear el resultado de la compilación en lugar de compilar desde cero. Como resultado, el script se ejecuta mucho más rápido.