Repolode
P403n1x87

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. 1

    Instale o Austin do PyPI com pip

    pip install austin-dist
  2. 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

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

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