Um tracer de Python de baixo overhead que registra chamadas de função e visualiza a execução do código em uma linha do tempo interativa.
P403n1x87/austin
Um amostrador de pilhas de chamadas para CPython, escrito em C, com baixo overhead e sem instrumentação, para perfilar processos Python em execução.
- Estrelas
- 2,215
- Forks
- 68
- Issues abertas
- 10
- Último commit
- há 10 dias
O que é?
Austin amostra as pilhas de chamadas de processos CPython em execução lendo a memória do interpretador de fora do processo. Não exige alterações no código nem instrumentação, então pode ser conectado a uma aplicação ativa, inclusive em produção, para mostrar onde o tempo ou a memória estão sendo usados.
Sua saída é um formato binário compacto chamado MOJO, que pode ser convertido em pilhas colapsadas para FlameGraph, JSON do Speedscope ou Google pprof. Também funciona com aplicações multiprocessos, como mod_wsgi, pode amostrar o estado do garbage collector e oferece um modo 'where' que despeja as pilhas atuais de todas as threads de um processo. Austin é distribuído como um único binário C e oferece suporte ao Python 3.9 a 3.14 no Linux, Windows e macOS.
Recursos principais
- 01Amostra pilhas do CPython lendo a memória do interpretador, sem instrumentar o código.
- 02Oferece suporte à análise de desempenho por tempo, por memória e ao modo completo, que combina os dois.
- 03Acompanha processos filhos e amostra subinterpretadores.
- 04Gera dados binários MOJO que podem ser convertidos para os formatos FlameGraph, Speedscope e pprof.
- 05Inclui um modo where que despeja as pilhas de todas as threads de um processo em execução.
- 06É distribuído como um único binário C, sem dependências de terceiros.
Casos de uso
- Encontrar gargalos de desempenho em uma aplicação Python sem modificar o código.
- Perfilar um serviço ativo em produção ou um script de longa duração com overhead mínimo.
- Perfilar implantações web multiprocessos, como workers do Apache mod_wsgi.
- Gerar flame graphs de programas Python para comparar como o tempo de CPU ou de memória é utilizado.
Início rápido
- 1
Instale o Austin do PyPI com pip
pip install austin-dist - 2
Execute o austin com o comando ou a opção -p PID para amostrar um processo Python; consulte a ajuda de uso para ver as opções
Antes de usar
- Só permite criar perfis de processos CPython.
- Licenciado sob a GPL-3.0, uma licença copyleft que pode restringir a forma como você reutiliza o código.
Tópicos
Perguntas frequentes
- O que é austin?
- Um amostrador de pilhas de chamadas para CPython, escrito em C, com baixo overhead e sem instrumentação, para perfilar processos Python em execução. Austin amostra as pilhas de chamadas de processos CPython em execução lendo a memória do interpretador de fora do processo. Não exige alterações no código nem instrumentação, então pode ser conectado a uma aplicação ativa, inclusive em produção, para mostrar onde o tempo ou a memória estão sendo usados.
- austin é gratuito? Qual é a licença?
- austin é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- austin ainda é mantido?
- Manutenção ativa. O último commit de austin foi em 28 de out. de 2026.
- Para que posso usar austin?
- Encontrar gargalos de desempenho em uma aplicação Python sem modificar o código. Perfilar um serviço ativo em produção ou um script de longa duração com overhead mínimo. Perfilar implantações web multiprocessos, como workers do Apache mod_wsgi. Gerar flame graphs de programas Python para comparar como o tempo de CPU ou de memória é utilizado.
- Como instalar austin?
- Instale o Austin do PyPI com pip: pip install austin-dist Execute o austin com o comando ou a opção -p PID para amostrar um processo Python; consulte a ajuda de uso para ver as opções
- Onde consigo austin?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/P403n1x87/austin
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Gerador de flamegraphs em Rust que analisa projetos Cargo ou qualquer binário com perf, xctrace ou dtrace/blondie, sem Perl.
Profiler de memória para Python que rastreia alocações no código Python, em extensões nativas e no interpretador, com vários tipos de relatório.
Profiler linha a linha para Python que mostra quanto tempo cada linha do código-fonte de uma função decorada leva para executar.
Ferramenta de linha de comando e web para visualizar e analisar dados de profiling no formato profile.proto.
Profiler em tempo real e interface de inspeção para Django que registra requisições, consultas SQL e blocos de código para ajudar a encontrar gargalos.