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.
flamegraph-rs/flamegraph
Gerador de flamegraphs em Rust que analisa projetos Cargo ou qualquer binário com perf, xctrace ou dtrace/blondie, sem Perl.
- Estrelas
- 6,053
- Forks
- 194
- Issues abertas
- 75
- Último commit
- há 4 dias
O que é?
flamegraph gera flamegraphs para mostrar onde um programa passa o tempo. Ele funciona com projetos Cargo pelo subcomando cargo flamegraph e também pode analisar qualquer binário ou um processo em execução, usando o PID. As amostras de pilha são coletadas com a ferramenta nativa da plataforma e renderizadas como um SVG interativo, baseado na biblioteca Inferno.
A ferramenta funciona no Linux com perf, no macOS com xctrace e no Windows com a biblioteca blondie ou com DTrace, quando instalado. Ela oferece opções para escolher o perfil de build, o binário, o exemplo, o alvo de benchmark ou teste, a frequência de amostragem, a paleta de cores e comandos personalizados de perf ou dtrace.
O README também inclui um guia para interpretar flamegraphs e algumas notas sobre medição de desempenho, como o USE Method e recomendações para fazer benchmarks antes de otimizar.
Recursos principais
- 01Analisa projetos Cargo, binários, exemplos, benchmarks e testes com cargo flamegraph.
- 02Conecta-se a processos em execução pelo PID.
- 03Usa perf no Linux, xctrace no macOS e blondie ou DTrace no Windows.
- 04Gera um SVG interativo que pode ser aberto no navegador.
- 05Oferece suporte a opções personalizadas para comandos de perf ou dtrace e a várias paletas de cores.
- 06Oferece conclusão de comandos do shell para o binário flamegraph em bash, fish, zsh, powershell e elvish.
Casos de uso
- Encontrar funções que consomem mais tempo em uma aplicação Rust antes de otimizá-la.
- Analisar um binário C ou C++ sem instalar Perl nem montar pipelines manualmente.
- Comparar onde o tempo é gasto durante a execução de um benchmark ou teste.
- Analisar um serviço em execução conectando-se ao ID do processo.
Início rápido
- 1
Instale os binários do flamegraph com Cargo
cargo install flamegraph - 2
Faça o perfil de um projeto Rust
cargo flamegraph - 3
Faça o perfil de um binário arbitrário
flamegraph -- /path/to/binary
Antes de usar
- A criação de perfil depende das ferramentas da plataforma: perf no Linux, xctrace no macOS e blondie ou dtrace no Windows.
- No Linux com lld (padrão desde o Rust 1.90.0) ou mold, é necessário adicionar a flag do linker --no-rosegment; caso contrário, os rastros de pilha podem ficar imprecisos.
- O uso do perf sem privilégios pode exigir a redução do valor de perf_event_paranoid, o que enfraquece a segurança do sistema.
Em coleções
Tópicos
Perguntas frequentes
- O que é flamegraph?
- Gerador de flamegraphs em Rust que analisa projetos Cargo ou qualquer binário com perf, xctrace ou dtrace/blondie, sem Perl. flamegraph gera flamegraphs para mostrar onde um programa passa o tempo. Ele funciona com projetos Cargo pelo subcomando cargo flamegraph e também pode analisar qualquer binário ou um processo em execução, usando o PID. As amostras de pilha são coletadas com a ferramenta nativa da plataforma e renderizadas como um SVG interativo, baseado na biblioteca Inferno.
- flamegraph é gratuito? Qual é a licença?
- flamegraph é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- flamegraph ainda é mantido?
- Manutenção ativa. O último commit de flamegraph foi em 2 de nov. de 2026.
- Para que posso usar flamegraph?
- Encontrar funções que consomem mais tempo em uma aplicação Rust antes de otimizá-la. Analisar um binário C ou C++ sem instalar Perl nem montar pipelines manualmente. Comparar onde o tempo é gasto durante a execução de um benchmark ou teste. Analisar um serviço em execução conectando-se ao ID do processo.
- Como instalar flamegraph?
- Instale os binários do flamegraph com Cargo: cargo install flamegraph Faça o perfil de um projeto Rust: cargo flamegraph Faça o perfil de um binário arbitrário: flamegraph -- /path/to/binary
- Onde consigo flamegraph?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/flamegraph-rs/flamegraph
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
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.
Suíte open source de tracing e profiling com SDKs, daemons de sistema e uma interface web para analisar traces no Android, Linux e Chromium.
Uma alternativa ao Gerenciador de Tarefas para Windows e Linux que mostra detalhes de cada processo, como threads, memória, handles, sockets e módulos.
Ferramenta de linha de comando independente que monitora arquivos e diretórios e executa um comando sempre que eles mudam.