Em Firefox compilador JIT atualizado, sob o codinome WarpBuilder. Para ativar o novo JIT em about:config, foi proposta a opção «javascript.options.warp».
Nota-se que o WarpBuilder é apenas o primeiro passo em direção à inclusão de novas otimizações no navegador, que devem ser implementadas ao longo do próximo ano.
O novo JIT permite aumentar o desempenho do motor JavaScript SpiderMonkey ao reduzir as informações internas sobre tipos rastreadas dentro do motor e aplicar a técnica de cache de código intermediário (CacheIR), anteriormente no interpretador de bytecode "baseline", que ocupa uma posição intermediária entre o interpretador normal e o compilador JIT prévio. As alterações mencionadas permitiram simplificar significativamente a arquitetura do JIT, aumentar a responsividade, reduzir o tempo de carregamento das páginas e diminuir o consumo de memória.
, o que permitiu ao novo JIT resolver muitos problemas do antigo JIT IonBuilder, como:
- Complexidade de implementação e potenciais problemas de segurança;
- Sobrecustos adicionais para o código Baseline/C++;
- Excessiva especialização, levando a recompilações desnecessárias;
- Geração de código intermediário (IR de nível médio) no fluxo principal (no WarpBuilder, a principal geração de código intermediário foi movida para um fluxo separado);
- Gastos adicionais de memória para armazenar dados sobre tipos e grupos de objetos (ObjectGroups).
Em média, nos testes avaliando o desempenho com base em métricas visuais, o uso do WarpBuilder resulta em um aumento de 5-15%. A velocidade no teste Speedometer aumentou em 10%. Testes em sites reais mostraram uma redução no tempo de carregamento do Google Docs em , o índice ao abrir a seção Android no Reddit melhorou em , pdfpaint ficou mais rápido em . O consumo de memória no teste caiu em 8%. nos instrumentos para desenvolvedores (devtools perf) também demonstraram uma redução no consumo de memória de 8%.
Fonte: opennet.ru
