Pular para o conteúdo principal

Lançamento do V8 v5.4

· Leitura de 3 minutos
a equipe V8

A cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é originada do Git master do V8 imediatamente antes de um marco Beta do Chrome. Hoje estamos felizes em anunciar nosso mais novo branch, V8 versão 5.4, que estará em beta até ser lançado em coordenação com o Chrome 54 Stable daqui a algumas semanas. O V8 v5.4 está repleto de diversos recursos voltados para os desenvolvedores, e gostaríamos de dar um prévia de alguns destaques aguardando o lançamento.

Melhoria de desempenho

O V8 v5.4 apresenta várias melhorias importantes na pegada de memória e na velocidade de início. Estas ajudam principalmente a acelerar a execução inicial de scripts e a reduzir o carregamento de páginas no Chrome.

Memória

Ao medir o consumo de memória do V8, duas métricas são muito importantes para monitorar e entender: Consumo máximo de memória e consumo médio de memória. Tipicamente, reduzir o consumo máximo é tão importante quanto reduzir o consumo médio, já que um script em execução que esgota a memória disponível mesmo por um momento breve pode causar uma falha de Memória Insuficiente, mesmo que seu consumo médio de memória não seja muito alto. Para fins de otimização, é útil dividir a memória do V8 em duas categorias: Memória na pilha contendo objetos JavaScript reais e memória fora da pilha contendo o restante, como estruturas de dados internas alocadas pelo compilador, parser e coletor de lixo.

No 5.4, ajustamos o coletor de lixo do V8 para dispositivos de baixa memória com 512 MB de RAM ou menos. Dependendo do site exibido, isso reduz o consumo máximo de memória na pilha em até 40%.

O gerenciamento de memória dentro do parser JavaScript do V8 foi simplificado para evitar alocações desnecessárias, reduzindo o uso máximo de memória fora da pilha em até 20%. Essas economias de memória são especialmente úteis para reduzir o uso de memória de arquivos de script grandes, incluindo aplicativos asm.js.

Inicialização & velocidade

Nosso trabalho para simplificar o parser do V8 não apenas ajudou a reduzir o consumo de memória, mas também melhorou o desempenho de execução do parser. Essa simplificação, combinada com outras otimizações de funções embutidas de JavaScript e como os acessos às propriedades em objetos JavaScript usam caches inline globais, resultou em ganhos notáveis de desempenho de inicialização.

Nossa suite interna de testes de inicialização que mede o desempenho de JavaScript em situações reais melhorou em uma mediana de 5%. O benchmark Speedometer também se beneficia dessas otimizações, melhorando em ~10 a 13% em comparação com v5.2.

API do V8

Por favor, confira nosso resumo de mudanças na API. Este documento é atualizado regularmente algumas semanas após cada grande lançamento.

Os desenvolvedores com um checkout ativo do V8 podem usar git checkout -b 5.4 -t branch-heads/5.4 para experimentar os novos recursos do V8 v5.4. Alternativamente, você pode assinar o canal Beta do Chrome e experimentar os novos recursos em breve.