1 pontos por GN⁺ 2026-03-18 | Ainda não há comentários. | Compartilhar no WhatsApp
  • O compilador JIT do CPython alcançou desempenho 11~12% mais rápido no macOS AArch64 e 5~6% mais rápido no Linux x86_64, atingindo a meta antes do previsto
  • Nas versões 3.13~3.14, o JIT era mais lento que o interpretador, mas o desempenho melhorou muito com desenvolvimento centrado na comunidade e melhorias estruturais
  • Tentativas experimentais como trace recording e reference count elimination foram pontos de virada importantes
  • Contribuidores centrais como Savannah Ostrowski, Mark Shannon, Diego Russo e Brandt Bucher, além de muitos novos participantes, colaboraram juntos
  • Este resultado mostra que desenvolvimento guiado pela comunidade e cultura de colaboração podem gerar efeitos reais na melhoria de desempenho em open source

Situação atual da melhoria de desempenho do JIT do CPython

  • No macOS AArch64, registrou desempenho 11~12% mais rápido; no Linux x86_64, 5~6% mais rápido
    • Os valores foram medidos por média geométrica, e em alguns benchmarks a variação foi de 20% mais lento a mais de 100% mais rápido
    • O suporte a free-threading ainda não está concluído, com meta para as versões 3.15/3.16
  • Nas versões 3.13~3.14, o JIT era mais lento que o interpretador, mas nesta versão houve um ganho de velocidade significativo

Desenvolvimento do JIT centrado na comunidade

  • Após a interrupção do principal patrocínio da equipe Faster CPython em 2025, houve transição para um modelo de desenvolvimento liderado pela comunidade
    • Meta: melhoria de 5% na 3.15, melhoria de 10% na 3.16 e suporte a free-threading
    • Para reduzir o bus factor, foram garantidos pelo menos dois mantenedores em cada etapa (frontend, middle-end e backend)
  • Problemas complexos foram divididos em partes menores para incentivar a participação de novos contribuidores
    • Brandt Bucher separou unidades de trabalho por meio de “mega-issues”
    • 11 contribuidores transformaram instruções do interpretador para ficarem mais amigáveis às otimizações do JIT
  • A cultura de incentivo a contribuições e compartilhamento de conquistas ajudou a manter a participação
    • Como resultado, o desempenho no Linux x86_64 melhorou de 1% para 3~4%

Principais pontos de virada técnicos

Trace recording

  • No core sprint do CPython, houve transição para um frontend baseado em tracing
    • No início era 6% mais lento, mas o desempenho melhorou com a introdução da estrutura dual dispatch
    • A velocidade do interpretador base foi mantida, minimizando o aumento do tamanho do interpretador
  • A introdução de trace recording aumentou a cobertura de código do JIT em 50%, melhorando depois a eficiência das otimizações

Reference count elimination

  • Inspirado no trabalho de otimização de bytecode de Matt Page
    • Houve ganho de desempenho com a remoção de branches gerados durante a diminuição da contagem de referências
    • Foi confirmado que mesmo a remoção de um único branch já reduz o custo acumulado
  • É fácil de paralelizar e foi usado para treinar novos contribuidores como tarefa de aprendizado da estrutura do JIT

Infraestrutura e composição da equipe

  • Savannah Ostrowski opera a infraestrutura de medição de desempenho do JIT com quatro máquinas
    • Os resultados diários de execução do JIT permitem detectar cedo regressões de desempenho
  • Diego Russo ficou responsável por melhorar o JIT para hardware ARM e a compatibilidade com profiler
  • Brandt Bucher construiu a base do backend de código de máquina, reduzindo a barreira de entrada para novos contribuidores

Colaboração e troca de conhecimento

  • Conselhos de CF Bolz-Tereick sobre o PyPy ajudaram a aprofundar o entendimento do design do JIT
  • O intercâmbio com especialistas em compiladores, como Max Bernstein, garantiu motivação contínua e crescimento técnico
  • A experiência de analisar o código do PyPy contribuiu para a melhoria da qualidade do JIT do CPython

Conclusão

  • O JIT do Python 3.15 é resultado da combinação de colaboração da comunidade, experimentação técnica e melhorias de infraestrutura
  • Pessoas, sorte e cultura de colaboração se mostraram forças centrais para a inovação de desempenho em open source

Ainda não há comentários.

Ainda não há comentários.