Pular para o conteúdo principal

23 postagens marcadas com "internos"

Ver todas os Marcadores

Organizando coisas no V8

· Leitura de 19 minutos
Simon Zünd ([@nimODota](https://twitter.com/nimODota)), comparador consistente

Array.prototype.sort estava entre os últimos recursos incorporados em JavaScript auto-hospedado no V8. Portá-lo ofereceu-nos a oportunidade de experimentar diferentes algoritmos e estratégias de implementação e finalmente torná-lo estável no V8 v7.0 / Chrome 70.

Builtin embutidos

· Leitura de 12 minutos
Jakob Gruber ([@schuay](https://twitter.com/schuay))

As funções embutidas do V8 (builtins) consomem memória em cada instância do V8. A contagem de builtins, o tamanho médio e o número de instâncias do V8 por aba do navegador Chrome aumentaram significativamente. Este post descreve como reduzimos o tamanho mediano do heap do V8 por site em 19% no último ano.

Marcação concorrente no V8

· Leitura de 14 minutos
Ulan Degenbaev, Michael Lippautz, e Hannes Payer — libertadores da thread principal

Este post descreve a técnica de coleta de lixo chamada marcação concorrente. A otimização permite que uma aplicação JavaScript continue a execução enquanto o coletor de lixo escaneia o heap para encontrar e marcar objetos vivos. Nossos benchmarks mostram que a marcação concorrente reduz o tempo gasto marcando na thread principal em 60%–70%. A marcação concorrente é a última peça do projeto Orinoco — o projeto para substituir incrementalmente o antigo coletor de lixo pelo novo coletor de lixo principalmente concorrente e paralelo. A marcação concorrente está habilitada por padrão no Chrome 64 e Node.js v10.

Cache de código melhorado

· Leitura de 6 minutos
Mythri Alle, Chefe de Cache de Código

O V8 usa armazenamento em cache de código para guardar o código gerado de scripts usados frequentemente. A partir do Chrome 66, estamos armazenando mais código em cache ao gerar o cache após a execução de alto nível. Isso resulta em uma redução de 20–40% no tempo de análise e compilação durante o carregamento inicial.

Orinoco: coleta de lixo da geração jovem

· Leitura de 8 minutos
Ulan Degenbaev, Michael Lippautz e Hannes Payer, amigos de [TSAN](https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual)

Os objetos JavaScript no V8 são alocados em um heap gerenciado pelo coletor de lixo do V8. Em postagens anteriores no blog, já falamos sobre como reduzir os tempos de pausa na coleta de lixo (mais de uma vez) e o consumo de memória. Nesta postagem, apresentamos o Scavenger paralelo, um dos últimos recursos do Orinoco, o coletor de lixo majoritariamente concorrente e paralelo do V8, e discutimos decisões de design e abordagens alternativas que implementamos ao longo do caminho.

Um estágio sobre preguiça: desvinculação preguiçosa de funções desotimizadas

· Leitura de 11 minutos
Juliana Franco ([@jupvfranco](https://twitter.com/jupvfranco)), Especialista em Preguiça

Há cerca de três meses, me juntei à equipe V8 (Google Munique) como estagiária e, desde então, tenho trabalhado no Desotimizador da máquina virtual — algo completamente novo para mim, que se revelou um projeto interessante e desafiador. A primeira parte do meu estágio focou em melhorar a segurança da máquina virtual. A segunda parte focou em melhorias de desempenho, especificamente na remoção de uma estrutura de dados usada para desvincular funções previamente desotimizadas, que era um gargalo de desempenho durante a coleta de lixo. Este post descreve essa segunda parte do meu estágio. Vou explicar como o V8 costumava desvincular funções desotimizadas, como mudamos isso e quais foram as melhorias de desempenho obtidas.

Lançando Ignition e TurboFan

· Leitura de 7 minutos
a equipe do V8

Hoje estamos entusiasmados em anunciar o lançamento de um novo pipeline de execução JavaScript para o V8 v5.9 que chegará ao Chrome Stable na versão 59. Com o novo pipeline, alcançamos grandes melhorias de desempenho e economias significativas de memória em aplicativos JavaScript do mundo real. Discutiremos os números com mais detalhes no final deste post, mas primeiro vamos dar uma olhada no próprio pipeline.

Ajude-nos a testar o futuro do V8!

· Leitura de 3 minutos
Daniel Clifford ([@expatdanno](https://twitter.com/expatdanno)), Cervejeiro Original de V8 em Munique

A equipe do V8 está atualmente trabalhando em um novo pipeline de compiladores padrão que nos ajudará a trazer melhorias de velocidade para o JavaScript do mundo real. Você pode pré-visualizar o novo pipeline no Chrome Canary hoje para nos ajudar a verificar que não haverá surpresas quando implantarmos a nova configuração para todos os canais do Chrome.

Acelerando as expressões regulares do V8

· Leitura de 4 minutos
Jakob Gruber, Engenheiro de Software Regular

Este post no blog aborda a recente migração das funções integradas de RegExp do V8 de uma implementação de JavaScript autônoma para uma que se conecta diretamente à nossa nova arquitetura de geração de código baseada no TurboFan.

Jank Busters Parte Dois: Orinoco

· Leitura de 7 minutos
os jank busters: Ulan Degenbaev, Michael Lippautz e Hannes Payer

Em um post anterior do blog, apresentamos o problema da queda de desempenho causada pela coleta de lixo que interrompe uma experiência de navegação fluida. Neste post do blog, introduzimos três otimizações que estabelecem as bases para um novo coletor de lixo no V8, codinome Orinoco. Orinoco é baseado na ideia de que implementar um coletor de lixo principalmente paralelo e simultâneo, sem limites geracionais rígidos, reduzirá a queda de desempenho na coleta de lixo e o consumo de memória enquanto fornece alta produtividade. Em vez de implementar Orinoco por trás de uma opção como um coletor de lixo separado, decidimos lançar os recursos do Orinoco incrementalmente no V8 diretamente a partir da árvore principal para beneficiar os usuários imediatamente. Os três recursos discutidos neste post são compactação paralela, processamento paralelo de conjunto registrado e alocação preta.