ExpertiDict

Python · Avançado · Português · Técnico

interpretador especializante

/ĩteɾpɾetaˈdoɾ espesjaliˈzɐ̃tʃi/substantivo

Técnica do CPython 3.11 em diante que observa os tipos vistos em cada instrução e a troca por versões especializadas, mais rápidas, desfazendo a troca se os tipos mudarem.

Onde usar

Explica por que código quente com tipos estáveis ficou mais rápido nas últimas versões, e por que funções polimórficas se beneficiam menos. Em benchmarks, o aquecimento importa.

Em código

import dis
def soma(a, b):
  return a + b
for _ in range(1000):
  soma(1, 2)
dis.dis(soma, adaptive=True)
# mostra, por ex., BINARY_OP_ADD_INT

Exemplos

O ganho veio do interpretador especializante, não de mudar o algoritmo.

Com tipos estáveis, o interpretador especializante acelera esse laço.

Cuidado

Não é um JIT que gera código de máquina: continua interpretando bytecode, só que com instruções mais específicas.

Sinônimos

interpretador adaptativo

Veja também

Todos os termos de Python