Repolode
janestreet

janestreet/magic-trace

Profiler para Linux que usa Intel Processor Trace para registrar todas as chamadas de função de um processo e exibi-las em uma linha do tempo interativa.

Estrelas
6,347
Forks
223
Issues abertas
73
Último commit
há 18 dias

O que é?

magic-trace coleta e exibe traces de alta resolução do que um processo está fazendo. Em vez de amostrar pilhas de chamadas em intervalos, como o perf, ele usa Intel Processor Trace para manter um buffer circular com todo o fluxo de controle e, em seguida, captura esse buffer em um momento escolhido. A captura é reconstruída em uma linha do tempo interativa de pilhas de chamadas que, por padrão, abrange aproximadamente os últimos 10 ms, com chamadas de função resolvidas em cerca de 40 ns.

Você pode se conectar a um processo em execução e se desconectar com Ctrl+C para capturar o fim da execução, ou definir um gatilho para que uma captura seja feita sempre que uma função especificada for chamada. Os traces são gravados em arquivos trace.fxt.gz e abertos no visualizador magic-trace.org, que roda no navegador e é um fork do Perfetto. A ferramenta não exige alterações na aplicação e, segundo informado, adiciona de 2% a 10% de overhead.

É necessário usar uma CPU Intel Skylake ou posterior, e a ferramenta roda somente no Linux. A maioria das máquinas virtuais não é compatível.

Recursos principais

  • 01Registra todas as chamadas de função de um processo com resolução de cerca de 40 ns.
  • 02Usa Intel Processor Trace para capturar um buffer circular do fluxo de controle, em vez de fazer amostragem.
  • 03Conecta-se a um processo em execução sem exigir alterações na aplicação.
  • 04Dispara capturas quando uma função escolhida é chamada ou ao se desconectar.
  • 05O visualizador roda no navegador e não faz upload dos traces.

Casos de uso

  • Descobrir por que algumas requisições em produção são lentas, enquanto muitas outras são rápidas.
  • Ver qual código realmente é executado em um caminho crítico, em vez de confiar no que se presume que seja executado.
  • Analisar a sequência de chamadas que levou a uma falha.
  • Investigar o que acontece entre dois pontos de um programa de longa execução, como um ciclo do scheduler ou uma passagem do GC.

Início rápido

  1. 1

    Baixe o binário ou pacote da versão na página da versão mais recente

  2. 2

    Torne o binário pré-compilado executável

    chmod +x magic-trace
  3. 3

    Instale o pacote .deb baixado

    sudo dpkg -i magic-trace*.deb
  4. 4

    Verifique a instalação exibindo o texto de ajuda

    magic-trace -help

Antes de usar

  • Compatível apenas com Linux e requer uma CPU Intel (Skylake ou posterior).
  • A maioria das máquinas virtuais não é compatível.

Em coleções

Tópicos

#performance-tools#profiling#tracing#intel-pt#linux#debugging#observability#intel#introspection#profile

Perguntas frequentes

O que é magic-trace?
Profiler para Linux que usa Intel Processor Trace para registrar todas as chamadas de função de um processo e exibi-las em uma linha do tempo interativa. magic-trace coleta e exibe traces de alta resolução do que um processo está fazendo. Em vez de amostrar pilhas de chamadas em intervalos, como o perf, ele usa Intel Processor Trace para manter um buffer circular com todo o fluxo de controle e, em seguida, captura esse buffer em um momento escolhido. A captura é reconstruída em uma linha do tempo interativa de pilhas de chamadas que, por padrão, abrange aproximadamente os últimos 10 ms, com chamadas de função resolvidas em cerca de 40 ns.
magic-trace é gratuito? Qual é a licença?
magic-trace é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
magic-trace ainda é mantido?
Manutenção ativa. O último commit de magic-trace foi em 19 de out. de 2026.
Para que posso usar magic-trace?
Descobrir por que algumas requisições em produção são lentas, enquanto muitas outras são rápidas. Ver qual código realmente é executado em um caminho crítico, em vez de confiar no que se presume que seja executado. Analisar a sequência de chamadas que levou a uma falha. Investigar o que acontece entre dois pontos de um programa de longa execução, como um ciclo do scheduler ou uma passagem do GC.
Como instalar magic-trace?
Baixe o binário ou pacote da versão na página da versão mais recente Torne o binário pré-compilado executável: chmod +x magic-trace Instale o pacote .deb baixado: sudo dpkg -i magic-trace*.deb Verifique a instalação exibindo o texto de ajuda: magic-trace -help
Onde consigo magic-trace?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/janestreet/magic-trace

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados