Un muestreador de pilas de llamadas de bajo impacto y sin instrumentación para CPython, escrito en C, que perfila procesos Python en ejecución.
gaogaotiantian/viztracer
Un tracer de Python de bajo impacto que registra llamadas a funciones y muestra la ejecución del código como una línea de tiempo interactiva.
- Estrellas
- 7,775
- Forks
- 480
- Issues abiertos
- 33
- Último commit
- el mes pasado
¿Qué es?
VizTracer traza la ejecución de código Python y muestra el resultado como una línea de tiempo interactiva en un visor web basado en Perfetto. En la línea de tiempo se registra cada entrada y salida de una función junto con su código fuente, lo que resulta útil para depurar flujos de control inesperados y encontrar en qué partes se invierte el tiempo.
La mayoría de las funciones se pueden usar sin modificar el código fuente: ejecuta un script con el comando viztracer o envuelve una sección con un gestor de contexto de VizTracer, y abre el archivo result.json generado con vizviewer. También admite magias de celda de Jupyter, el registro de eventos nativos y de GPU de PyTorch, y la conexión remota a procesos en ejecución.
Incluye compatibilidad con threading, multiprocessing, subprocess, os.fork, concurrent.futures y asyncio; además, filtros como duración mínima, profundidad de pila y listas de inclusión o exclusión de archivos ayudan a reducir el tamaño de las trazas. Funciona en Linux, macOS y Windows, y se instala con pip.
Funciones clave
- 01Registra en una línea de tiempo las entradas y salidas de funciones junto con el código fuente.
- 02Ejecuta scripts, módulos y scripts de consola sin modificar el código fuente.
- 03Admite threading, multiprocessing, subprocess, asyncio y PyTorch.
- 04Ofrece filtros por duración mínima, profundidad de pila e inclusión o exclusión de archivos.
- 05Puede conectarse a procesos Python remotos en ejecución.
- 06Funciona en Linux, macOS y Windows.
Casos de uso
- Depurar flujos de control inesperados en programas Python con varios hilos o asíncronos.
- Encontrar qué llamadas a funciones concentran la mayor parte del tiempo de ejecución de un script lento.
- Inspeccionar la ejecución de modelos de PyTorch, incluidos los eventos de GPU.
- Investigar el comportamiento de un proceso de larga duración conectándose a él.
Inicio rápido
- 1
Instala VizTracer con pip
pip install viztracer - 2
Traza tu script desde la línea de comandos
viztracer my_script.py arg1 arg2 - 3
Abre el archivo result.json generado en el visor
vizviewer result.json
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es viztracer?
- Un tracer de Python de bajo impacto que registra llamadas a funciones y muestra la ejecución del código como una línea de tiempo interactiva. VizTracer traza la ejecución de código Python y muestra el resultado como una línea de tiempo interactiva en un visor web basado en Perfetto. En la línea de tiempo se registra cada entrada y salida de una función junto con su código fuente, lo que resulta útil para depurar flujos de control inesperados y encontrar en qué partes se invierte el tiempo.
- ¿viztracer es gratuito? ¿Qué licencia tiene?
- viztracer es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿viztracer sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de viztracer fue el 26 sept 2026.
- ¿Para qué puedo usar viztracer?
- Depurar flujos de control inesperados en programas Python con varios hilos o asíncronos. Encontrar qué llamadas a funciones concentran la mayor parte del tiempo de ejecución de un script lento. Inspeccionar la ejecución de modelos de PyTorch, incluidos los eventos de GPU. Investigar el comportamiento de un proceso de larga duración conectándose a él.
- ¿Cómo se instala viztracer?
- Instala VizTracer con pip: pip install viztracer Traza tu script desde la línea de comandos: viztracer my_script.py arg1 arg2 Abre el archivo result.json generado en el visor: vizviewer result.json
- ¿Dónde consigo viztracer?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/gaogaotiantian/viztracer
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Herramienta de línea de comandos y web para visualizar y analizar datos de perfiles en formato profile.proto.
Generador de flamegraphs basado en Rust para perfilar proyectos de Cargo o cualquier binario con perf, xctrace o dtrace/blondie, sin Perl.
Un profiler para Linux que usa Intel Processor Trace para registrar cada llamada a función de un proceso y mostrarla en una línea de tiempo interactiva.
Un perfilador de memoria para Python que registra las asignaciones en el código Python, las extensiones nativas y el intérprete, y ofrece varios tipos de informes.
Profiler línea por línea para Python que muestra cuánto tarda en ejecutarse cada línea del código fuente de una función decorada.