Repolode
flamegraph-rs

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

    Instale os binários do flamegraph com Cargo

    cargo install flamegraph
  2. 2

    Faça o perfil de um projeto Rust

    cargo flamegraph
  3. 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