Repolode
P403n1x87

P403n1x87/austin

Un muestreador de pilas de llamadas de bajo impacto y sin instrumentación para CPython, escrito en C, que perfila procesos Python en ejecución.

Estrellas
2,215
Forks
68
Issues abiertos
10
Último commit
hace 10 días

¿Qué es?

Austin muestrea las pilas de llamadas de procesos CPython en ejecución leyendo desde fuera del proceso la memoria del intérprete. No requiere cambios en el código ni instrumentación, así que se puede conectar a una aplicación activa, incluso en producción, para ver en qué se emplean el tiempo o la memoria.

Su salida es un formato binario compacto llamado MOJO, que se puede convertir a pilas colapsadas para FlameGraph, JSON de Speedscope o Google pprof. También funciona con aplicaciones multiproceso como mod_wsgi, puede muestrear el estado del recolector de basura y ofrece un modo 'where' que vuelca las pilas actuales de todos los hilos de un proceso. Austin se distribuye como un único binario de C y es compatible con Python 3.9 a 3.14 en Linux, Windows y macOS.

Funciones clave

  • 01Muestrea las pilas de CPython leyendo la memoria del intérprete, sin instrumentar el código.
  • 02Admite el perfilado de tiempo, el perfilado de memoria y un modo completo que combina ambos.
  • 03Sigue los procesos secundarios y muestrea subintérpretes.
  • 04Genera datos binarios MOJO que se pueden convertir a los formatos de FlameGraph, Speedscope y pprof.
  • 05Incluye un modo where que vuelca las pilas de todos los hilos de un proceso en ejecución.
  • 06Se distribuye como un único binario de C, sin dependencias de terceros.

Casos de uso

  • Encontrar cuellos de botella de rendimiento en una aplicación Python sin modificar su código.
  • Perfilar un servicio activo en producción o un script de larga duración con un impacto mínimo.
  • Perfilar despliegues web multiproceso, como los procesos de trabajo de Apache mod_wsgi.
  • Generar gráficos de llamas a partir de programas Python para comparar dónde se emplean el tiempo de CPU o la memoria.

Inicio rápido

  1. 1

    Instala Austin desde PyPI con pip

    pip install austin-dist
  2. 2

    Ejecuta austin con el comando o la opción -p PID para muestrear un proceso de Python; consulta la ayuda de uso para ver las opciones

Antes de usarlo

  • Solo permite perfilar procesos de CPython.
  • Está sujeto a la licencia GPL-3.0, una licencia copyleft que puede restringir la forma de reutilizar el código.

Temas

#python#profiling#performance#debugging#flamegraph#sampling-profiler#debugging-tools

Preguntas frecuentes

¿Qué es austin?
Un muestreador de pilas de llamadas de bajo impacto y sin instrumentación para CPython, escrito en C, que perfila procesos Python en ejecución. Austin muestrea las pilas de llamadas de procesos CPython en ejecución leyendo desde fuera del proceso la memoria del intérprete. No requiere cambios en el código ni instrumentación, así que se puede conectar a una aplicación activa, incluso en producción, para ver en qué se emplean el tiempo o la memoria.
¿austin es gratuito? ¿Qué licencia tiene?
austin es open source bajo la licencia GPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿austin sigue mantenido?
Mantenimiento activo. El último commit de austin fue el 28 oct 2026.
¿Para qué puedo usar austin?
Encontrar cuellos de botella de rendimiento en una aplicación Python sin modificar su código. Perfilar un servicio activo en producción o un script de larga duración con un impacto mínimo. Perfilar despliegues web multiproceso, como los procesos de trabajo de Apache mod_wsgi. Generar gráficos de llamas a partir de programas Python para comparar dónde se emplean el tiempo de CPU o la memoria.
¿Cómo se instala austin?
Instala Austin desde PyPI con pip: pip install austin-dist Ejecuta austin con el comando o la opción -p PID para muestrear un proceso de Python; consulta la ayuda de uso para ver las opciones
¿Dónde consigo austin?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/P403n1x87/austin

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados