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.
gaogaotiantian/viztracer
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.
- Estrelas
- 7,775
- Forks
- 479
- Issues abertas
- 33
- Último commit
- mês passado
O que é?
O VizTracer rastreia a execução de código Python e exibe os resultados como uma linha do tempo interativa em um visualizador no navegador baseado no Perfetto. Cada entrada e saída de função é registrada na linha do tempo junto com o código-fonte, o que ajuda a depurar fluxos de controle inesperados e descobrir onde o tempo está sendo gasto.
A maioria dos recursos funciona sem modificar o código-fonte: basta executar um script pelo comando viztracer ou envolver um trecho com um gerenciador de contexto VizTracer e abrir o result.json gerado com o vizviewer. A ferramenta também oferece suporte a magics de célula do Jupyter, registro de eventos nativos e de GPU do PyTorch e conexão remota a processos em execução.
A ferramenta cobre threading, multiprocessing, subprocess, os.fork, concurrent.futures e asyncio. Filtros como duração mínima, profundidade da pilha e listas de inclusão ou exclusão de arquivos ajudam a reduzir o tamanho do trace. Funciona no Linux, macOS e Windows e pode ser instalada com pip.
Recursos principais
- 01Registra a entrada e a saída de funções em uma linha do tempo, junto com o código-fonte.
- 02Executa scripts, módulos e console scripts sem alterar o código-fonte.
- 03Oferece suporte a threading, multiprocessing, subprocess, asyncio e PyTorch.
- 04Disponibiliza filtros de duração mínima, profundidade da pilha e inclusão ou exclusão de arquivos.
- 05Permite se conectar a processos Python remotos em execução.
- 06Funciona no Linux, macOS e Windows.
Casos de uso
- Depurar fluxos de controle inesperados em programas Python multithread ou assíncronos.
- Descobrir quais chamadas de função representam a maior parte do tempo de execução de um script lento.
- Inspecionar a execução de modelos PyTorch, incluindo eventos de GPU.
- Investigar o comportamento de um processo de longa duração conectando-se a ele.
Início rápido
- 1
Instale o VizTracer com pip
pip install viztracer - 2
Rastreie seu script pela linha de comando
viztracer my_script.py arg1 arg2 - 3
Abra o result.json gerado no visualizador
vizviewer result.json
Em coleções
Tópicos
Perguntas frequentes
- O que é viztracer?
- 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. O VizTracer rastreia a execução de código Python e exibe os resultados como uma linha do tempo interativa em um visualizador no navegador baseado no Perfetto. Cada entrada e saída de função é registrada na linha do tempo junto com o código-fonte, o que ajuda a depurar fluxos de controle inesperados e descobrir onde o tempo está sendo gasto.
- viztracer é gratuito? Qual é a licença?
- viztracer é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- viztracer ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de viztracer foi em 26 de set. de 2026.
- Para que posso usar viztracer?
- Depurar fluxos de controle inesperados em programas Python multithread ou assíncronos. Descobrir quais chamadas de função representam a maior parte do tempo de execução de um script lento. Inspecionar a execução de modelos PyTorch, incluindo eventos de GPU. Investigar o comportamento de um processo de longa duração conectando-se a ele.
- Como instalar viztracer?
- Instale o VizTracer com pip: pip install viztracer Rastreie seu script pela linha de comando: viztracer my_script.py arg1 arg2 Abra o result.json gerado no visualizador: vizviewer result.json
- Onde consigo viztracer?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/gaogaotiantian/viztracer
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Ferramenta de linha de comando e web para visualizar e analisar dados de profiling no formato profile.proto.
Gerador de flamegraphs em Rust que analisa projetos Cargo ou qualquer binário com perf, xctrace ou dtrace/blondie, sem Perl.
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.
Profiler de memória para Python que rastreia alocações no código Python, em extensões nativas e no interpretador, com vários tipos de relatório.
Profiler linha a linha para Python que mostra quanto tempo cada linha do código-fonte de uma função decorada leva para executar.