CPython internals

TL;DR

Galho 6 da trilha Python: o “como por dentro” do interpretador de referência (CPython) — o loop de execução, PyObject/refcounting, o Garbage Collector geracional, o GIL (o que ele é de verdade e o que muda com free-threading na PEP 703), gerenciamento de memória via pymalloc e as ferramentas de profiling que revelam tudo isso na prática. Fase Magus; 9 notas. Equivalente ao galho JVM do Java. Assume os Galhos 1 (Core) e 4 (Funcional e idiomas avançados) como pré-requisito.

Sobre este galho

Até aqui a trilha tratou Python como uma linguagem — sintaxe, OO, generators, tipos. Este galho vira a página e olha pro interpretador: a peça de software C (CPython é a implementação de referência, a que 95%+ do ecossistema roda) que de fato executa o bytecode gerado a partir do seu código. Entender isso muda como você debuga performance (por que um loop é lento?), memória (por que meu processo Python não devolve RAM?) e concorrência (por que threading não acelera CPU-bound, mas asyncio e multiprocessing sim?) — perguntas que só fazem sentido quando você sabe o que tem por baixo do .py.

Audiência: quem já é produtivo em Python (Core + OO + Funcional) e está pronto pro salto de “uso a linguagem” pra “entendo a máquina que a executa” — o mesmo salto que o galho JVM representa pra quem vem de Java.

Magus

  1. 01 — O interpretador por dentro: ceval loop e frame objects
  2. [[02 - Objetos em CPython — PyObject, refcounting e tipos internos|02 — Objetos em CPython: PyObject, refcounting e tipos internos]]
  3. 03 — Reference counting e o Garbage Collector geracional
  4. 04 — O GIL: o que é de verdade e por que existe
  5. 05 — GIL e concorrência na prática: threading vs multiprocessing
  6. 06 — Free-threading: o GIL opcional (PEP 703)
  7. 07 — Memory management: allocators, pymalloc e arenas
  8. [[08 - Profiling — cProfile, py-spy, tracemalloc|08 — Profiling: cProfile, py-spy, tracemalloc]]
  9. 09 — Capstone: CPython internals — recapitula o galho.

Todas as notas

TABLE fase, status FROM "03-Dominios/Tecnologia/Python/CPython internals" WHERE type = "concept" SORT file.name ASC

Veja também