Adição de um compilador JIT ao Python 3.13
- O desenvolvedor do núcleo do CPython, Brandt Bucher, enviou um pull request para adicionar um compilador JIT ao branch do Python 3.13.
- Essa mudança será uma das maiores transformações no interpretador CPython desde o interpretador adaptativo especializado adicionado no Python 3.11.
O que é JIT?
- JIT (Just in Time) é um modelo em que a compilação acontece quando o código é executado pela primeira vez.
- Um compilador JIT é um compilador que gera código de máquina, em contraste com um compilador AOT (Ahead of Time).
- O código Python é primeiro compilado em bytecode, e esse bytecode não tem significado direto para a CPU, sendo executado por meio de um loop especial de interpretador de bytecode.
O que é copy-and-patch JIT?
- Copy-and-patch JIT é um conceito proposto em 2021, projetado como um algoritmo rápido para runtimes de linguagens dinâmicas.
- A ideia do copy-and-patch JIT é copiar as instruções de cada operação e preencher (fazer o patch de) os argumentos do bytecode.
Vantagens e desvantagens do copy-and-patch JIT
- Enquanto um compilador JIT "completo" compila bytecode de alto nível em instruções de baixo nível de uma linguagem intermediária (IL), o copy-and-patch JIT faz a compilação de bytecode para código de máquina por meio de um conjunto de templates.
- O copy-and-patch JIT não precisa executar uma arquitetura complexa de compilador JIT dentro do runtime do Python; basta instalar as ferramentas JIT do LLVM na máquina que compila o CPython a partir do código-fonte.
Como esse JIT funciona?
- Ele expande a API recém-adicionada à API do Python 3.13 para que otimizadores plugáveis possam ser descobertos em tempo de execução.
- O novo JIT é um otimizador opcional para essa nova arquitetura.
- Ao compilar o CPython a partir do código-fonte, fornecer a flag
--enable-experimental-jit faz com que sejam gerados templates de código de máquina para o bytecode do Python.
Esse JIT é mais rápido?
- Os benchmarks iniciais mostram ganhos de desempenho de cerca de 2% a 9%.
- Esse JIT é a pedra fundamental de uma série de otimizações que podem melhorar significativamente o desempenho do Python.
Opinião do GN⁺
- O compilador JIT adicionado ao Python 3.13 é uma mudança importante para melhorar a velocidade de execução do Python, especialmente aumentando a eficiência em tarefas repetitivas.
- O copy-and-patch JIT oferece uma abordagem inovadora para melhorar o desempenho sem precisar integrar uma arquitetura JIT complexa ao runtime de Python do usuário.
- Espera-se que essa tecnologia gere discussões interessantes na comunidade Python e abra novas possibilidades para a otimização de desempenho da linguagem.
1 comentários
Comentários do Hacker News