O desempenho da compilação JIT foi visivelmente melhorado nas compilações noturnas do Firefox

В construções noturnas Firefox ligado compilador JIT atualizado, desenvolvido codinome WarpBuilder. Para habilitar o novo JIT, a opção "javascript.options.warp" é fornecida em about:config.
Observa-se que o WarpBuilder é apenas o primeiro passo para a incorporação de novas otimizações ao navegador, que estão previstas para serem implementadas no próximo ano.

O novo JIT melhora o desempenho do mecanismo JavaScript SpiderMonkey, reduzindo as informações de tipo interno rastreadas dentro do mecanismo e usando a técnica de Cache de Código Intermediário (CacheIR) anteriormente proposto no interpretador de bytecode “baseline”, que ocupa um nicho intermediário entre um intérprete regular e um compilador pré-JIT. Essas mudanças permitiram simplificar significativamente a arquitetura JIT, aumentar a capacidade de resposta, reduzir o tempo de carregamento da página e reduzir o consumo de memória.

É notadoque o novo JIT resolveu muitos problemas do antigo JIT IonBuilder, como:

  • Complexidade de implementação e potenciais problemas de segurança;
  • Sobrecarga adicional para código Baseline/C++;
  • Especialização excessiva levando a recompilações desnecessárias;
  • Gerando código intermediário MIR (IR de nível médio) no thread principal (no WarpBuilder, o assembly principal do código intermediário é colocado em um thread separado);
  • Consumo adicional de memória para armazenamento de dados sobre tipos e grupos de objetos (ObjectGroups).

Em média, em testes que avaliam o desempenho com base em métricas visuais, observa-se uma aceleração de 5 a 15% ao usar o WarpBuilder. A taxa de conclusão do teste do velocímetro aumentou em 10%. Testes em sites reais mostraram uma redução no tempo de carregamento do Google Docs em 20%, índice Índice de velocidade ao abrir a seção Android no Reddit melhorada por 13%, o pdfpaint começou a funcionar mais rápido em 18%. Consumo de memória no teste tp6 diminuiu 8%. Dados estatísticas em ferramentas de desenvolvedor (devtools perf) também mostraram uma redução de 8% no consumo de memória.

Fonte: opennet.ru

Adicionar um comentário