Pular para o conteúdo principal

Extras do V8

· Leitura de 6 minutos
Domenic Denicola ([@domenic](https://twitter.com/domenic)), Feiticeiro de Streams

O V8 implementa um grande subconjunto dos objetos e funções incorporados da linguagem JavaScript no próprio JavaScript. Por exemplo, você pode ver nossa implementação de promessas escrita em JavaScript. Tais recursos incorporados são chamados de autogerenciados. Essas implementações são incluídas em nosso instantâneo de inicialização para que novos contextos possam ser criados rapidamente, sem a necessidade de configurar e inicializar os elementos autogerenciados durante a execução.

Lançamento do V8 v4.9

· Leitura de 6 minutos
a equipe do V8

Aproximadamente a cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é criada a partir do master do Git do V8 imediatamente antes do Chrome ramificar para um marco Beta do Chrome. Hoje estamos felizes em anunciar nossa mais nova ramificação, V8 versão 4.9, que ficará em beta até ser lançada em coordenação com a versão Estável do Chrome 49. V8 4.9 está repleto de novidades voltadas para os desenvolvedores, então gostaríamos de dar uma prévia de alguns destaques em antecipação ao lançamento nas próximas semanas.

Existe `Math.random()`, e depois existe `Math.random()`

· Leitura de 4 minutos
Yang Guo ([@hashseed](https://twitter.com/hashseed)), engenheiro de software e designer de dados

Math.random() retorna um valor do tipo Number com sinal positivo, maior ou igual a 0, mas menor que 1, escolhido aleatoriamente ou pseudoaleatoriamente com distribuição aproximadamente uniforme dentro desse intervalo, usando um algoritmo ou estratégia dependente da implementação. Esta função não aceita argumentos.

V8 lançamento v4.8

· Leitura de 3 minutos
a equipe do V8

Aproximadamente a cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é derivada do Git master do V8 imediatamente antes do Chrome criar um branch para um marco Beta. Hoje temos o prazer de anunciar nosso mais recente branch, V8 versão 4.8, que estará em beta até ser lançado em coordenação com a versão estável do Chrome 48. V8 4.8 contém alguns recursos voltados para desenvolvedores, então gostaríamos de dar uma prévia de alguns dos destaques em antecipação ao lançamento nas próximas semanas.

Jank Busters Parte Um

· Leitura de 5 minutos
os caçadores de jank: Jochen Eisinger, Michael Lippautz e Hannes Payer

Jank, ou em outras palavras, engasgos visíveis, pode ser percebido quando o Chrome falha em renderizar um quadro dentro de 16,66 ms (interrompendo o movimento de 60 quadros por segundo). Atualmente, a maior parte do trabalho de coleta de lixo do V8 é realizada na thread principal de renderização, cf. Figura 1, frequentemente resultando em jank quando muitos objetos precisam ser mantidos. Eliminar jank sempre foi uma alta prioridade para a equipe do V8 (1, 2, 3). Este artigo discute algumas otimizações implementadas entre o Chrome 41 e o Chrome 46, que reduzem significativamente as pausas de coleta de lixo, resultando em uma melhor experiência do usuário.

Lançamento do V8 v4.7

· Leitura de 2 minutos
a equipe V8

Aproximadamente a cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é ramificada do Git master do V8 imediatamente antes de o Chrome ser ramificado para um marco de Beta do Chrome. Hoje estamos felizes em anunciar nosso mais novo branch, V8 versão 4.7, que estará em beta até ser lançado em coordenação com o Chrome 47 Stable. O V8 v4.7 está carregado de várias melhorias voltadas para os desenvolvedores, então gostaríamos de dar uma prévia de alguns dos destaques em antecipação ao lançamento em algumas semanas.

Snapshots personalizados de inicialização

· Leitura de 3 minutos
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Engenheiro de Software e fornecedor de pré-aquecedor de motor

A especificação do JavaScript inclui muitas funcionalidades integradas, desde funções matemáticas até um motor de expressões regulares completo. Todo contexto recém-criado do V8 tem essas funções disponíveis desde o início. Para que isso funcione, o objeto global (por exemplo, o objeto window em um navegador) e todas as funcionalidades integradas devem ser configurados e inicializados no heap do V8 no momento em que o contexto é criado. Isso leva um tempo considerável para ser feito do zero.

Lançamento do V8 v4.6

· Leitura de 5 minutos
a equipe do V8

Aproximadamente a cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é criada a partir do Git master do V8 imediatamente antes de o Chrome criar um branch para uma versão Beta do Chrome. Hoje estamos felizes em anunciar nosso mais novo branch, V8 versão 4.6, que estará em beta até ser lançado em coordenação com o Chrome 46 Stable. O V8 4.6 está repleto de novidades voltadas para desenvolvedores, e gostaríamos de oferecer um preview de alguns dos destaques em antecipação ao lançamento dentro de algumas semanas.

Obtendo coleta de lixo gratuitamente

· Leitura de 10 minutos
Hannes Payer e Ross McIlroy, Idle Garbage Collectors

O desempenho do JavaScript continua sendo um dos aspectos-chave dos valores do Chrome, especialmente quando se trata de proporcionar uma experiência suave. A partir do Chrome 41, o V8 aproveita uma nova técnica para aumentar a responsividade de aplicativos web, ocultando operações caras de gerenciamento de memória dentro de pequenos períodos de tempo ocioso não utilizados. Como resultado, os desenvolvedores web devem esperar rolagem suave e animações fluídas com muito menos atrasos devido à coleta de lixo.

Cache de código

· Leitura de 2 minutos
Yang Guo ([@hashseed](https://twitter.com/hashseed)), Engenheiro de Software

O V8 utiliza compilação em tempo de execução (JIT) para executar código JavaScript. Isso significa que, imediatamente antes de executar um script, ele precisa ser analisado e compilado — o que pode causar uma sobrecarga considerável. Como anunciamos recentemente, o cache de código é uma técnica que reduz essa sobrecarga. Quando um script é compilado pela primeira vez, os dados de cache são gerados e armazenados. Na próxima vez que o V8 precisar compilar o mesmo script, mesmo em uma instância diferente do V8, ele pode usar os dados do cache para recriar o resultado da compilação, em vez de compilar do zero. Como resultado, o script é executado muito mais rapidamente.