Un tracer de Python de bajo impacto que registra llamadas a funciones y muestra la ejecución del código como una línea de tiempo interactiva.
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
Instala Austin desde PyPI con pip
pip install austin-dist - 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
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
Generador de flamegraphs basado en Rust para perfilar proyectos de Cargo o cualquier binario con perf, xctrace o dtrace/blondie, sin Perl.
Un perfilador de memoria para Python que registra las asignaciones en el código Python, las extensiones nativas y el intérprete, y ofrece varios tipos de informes.
Profiler línea por línea para Python que muestra cuánto tarda en ejecutarse cada línea del código fuente de una función decorada.
Herramienta de línea de comandos y web para visualizar y analizar datos de perfiles en formato profile.proto.
Profiler en tiempo real e interfaz de inspección para Django que registra solicitudes, consultas SQL y bloques de código para encontrar puntos lentos.