Del `.py` al bytecode: el pipeline de compilación de CPython
Cómo CPython transforma código fuente en bytecode ejecutable: tokenización, AST, compilación, caché `.pyc` e inspección con `dis`.
Cómo CPython transforma código fuente en bytecode ejecutable: tokenización, AST, compilación, caché `.pyc` e inspección con `dis`.
Cuándo y cómo usar Cython, Numba y mypyc para eliminar el overhead del intérprete CPython en código de alto rendimiento, con sus trade-offs reales.
Cómo y cuándo delegar operaciones numéricas a NumPy para ejecutar código C en lugar de bytecode Python, con vectorización y broadcasting.
LOAD_FAST vs LOAD_GLOBAL, attribute lookup, join vs +=, comprehensions y estructuras O(1): técnicas concretas para hot paths identificados con profiling.
Flujo completo de medición con timeit, perf_counter y cProfile para identificar hot paths reales antes de tocar el código.
Cómo usar tracemalloc para comparar snapshots del heap, localizar leaks por línea de código y rastrear referencias vivas con gc.get_referrers.
Cómo medir dónde gasta tiempo tu código con cProfile en desarrollo y py-spy en producción, leyendo correctamente tottime vs cumulative.
Cómo pausar la ejecución de Python con `breakpoint()` y navegar el estado del programa usando los comandos fundamentales de `pdb`.
Cómo usar structlog para emitir logs como JSON con contexto ligado por request, integrando el pipeline de procesadores con la stdlib de Python.
Cómo conectar múltiples handlers con formatters independientes y centralizar toda la configuración del sistema de logging con dictConfig.