Profiler por amostragem para programas Python, que se conecta a processos em execução sem modificar o código nem reiniciá-los.
google/pprof
Ferramenta de linha de comando e web para visualizar e analisar dados de profiling no formato profile.proto.
- Estrelas
- 9,323
- Forks
- 686
- Issues abertas
- 64
- Último commit
- há 3 dias
O que é?
pprof lê coleções de amostras de profiling no formato profile.proto e gera relatórios que ajudam desenvolvedores a entender onde o tempo ou a memória estão sendo gastos. A ferramenta produz relatórios de texto ordenados por hotness, gráficos de chamadas renderizados pelo Graphviz e um shell interativo ou uma interface web para explorar um profile.
Os profiles podem ser carregados de um arquivo local ou obtidos via HTTP, e vários profiles do mesmo tipo podem ser agregados ou comparados. Se um profile contiver endereços de máquina brutos, o pprof pode simbolizá-los usando as ferramentas nativas do binutils addr2line e nm, desde que o binário do programa esteja disponível. Também é possível ler arquivos perf.data do Linux perf usando um conversor complementar.
Instale com go install github.com/google/pprof@latest. O Graphviz é opcional e só é necessário para gerar gráficos. O projeto não é um produto oficial do Google.
Recursos principais
- 01Gera relatórios de texto com dados de profile ordenados por hotness.
- 02Produz gráficos de chamadas em SVG renderizados pelo Graphviz.
- 03Oferece um shell interativo e uma interface web acessada pelo navegador.
- 04Lê profiles de arquivos locais ou via HTTP.
- 05Agrega ou compara vários profiles do mesmo tipo.
- 06Simboliza endereços usando addr2line e nm.
Casos de uso
- Encontrar gargalos de CPU ou memória em um serviço Go a partir de um profile coletado.
- Visualizar os gráficos de chamadas de um programa lento para identificar quais caminhos consomem mais tempo.
- Comparar profiles anteriores e posteriores a uma alteração no código para medir seu impacto.
- Analisar gravações do Linux perf convertendo-as para o formato profile.proto.
Início rápido
- 1
Instale o kit de desenvolvimento Go e o Graphviz (opcional, para saída gráfica)
- 2
Compile e instale o pprof com Go
go install github.com/google/pprof@latest - 3
Gere um relatório de texto do perfil ordenado por nível de atividade
pprof -top [main_binary] profile.pb.gz
Antes de usar
- A saída gráfica requer uma instalação separada do Graphviz.
Em coleções
Tópicos
Perguntas frequentes
- O que é pprof?
- Ferramenta de linha de comando e web para visualizar e analisar dados de profiling no formato profile.proto. pprof lê coleções de amostras de profiling no formato profile.proto e gera relatórios que ajudam desenvolvedores a entender onde o tempo ou a memória estão sendo gastos. A ferramenta produz relatórios de texto ordenados por hotness, gráficos de chamadas renderizados pelo Graphviz e um shell interativo ou uma interface web para explorar um profile.
- pprof é gratuito? Qual é a licença?
- pprof é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pprof ainda é mantido?
- Manutenção ativa. O último commit de pprof foi em 5 de nov. de 2026.
- Para que posso usar pprof?
- Encontrar gargalos de CPU ou memória em um serviço Go a partir de um profile coletado. Visualizar os gráficos de chamadas de um programa lento para identificar quais caminhos consomem mais tempo. Comparar profiles anteriores e posteriores a uma alteração no código para medir seu impacto. Analisar gravações do Linux perf convertendo-as para o formato profile.proto.
- Como instalar pprof?
- Instale o kit de desenvolvimento Go e o Graphviz (opcional, para saída gráfica) Compile e instale o pprof com Go: go install github.com/google/pprof@latest Gere um relatório de texto do perfil ordenado por nível de atividade: pprof -top [main_binary] profile.pb.gz
- Onde consigo pprof?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/google/pprof
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
Profiler de amostragem de baixo overhead para Java, que captura perfis de CPU, alocações, locks e memória nativa sem viés de safepoint.
Ferramenta gratuita para Windows que ajuda a identificar problemas de desempenho de CPU e memória, com recursos especiais para analisar código do runtime .NET.
Profiler de pilha de chamadas para Python que mostra onde seu código gasta tempo, com saídas no console, em HTML e em outros formatos.
Plataforma de profiling contínuo que coleta perfis de CPU, memória e I/O de aplicações em execução para rastrear código lento até linhas específicas.