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.
flamegraph-rs/flamegraph
Generador de flamegraphs basado en Rust para perfilar proyectos de Cargo o cualquier binario con perf, xctrace o dtrace/blondie, sin Perl.
- Estrellas
- 6,053
- Forks
- 194
- Issues abiertos
- 75
- Último commit
- hace 5 días
¿Qué es?
flamegraph genera flamegraphs que muestran en qué emplea su tiempo un programa. Funciona con proyectos de Cargo mediante el subcomando cargo flamegraph y también puede perfilar cualquier binario o un proceso en ejecución a partir de su PID. Las muestras de la pila se recopilan con la herramienta nativa de cada plataforma y se representan en un SVG interactivo basado en la biblioteca Inferno.
La herramienta funciona en Linux con perf, en macOS con xctrace y en Windows con la biblioteca blondie o con DTrace, si está instalado. Ofrece opciones para elegir el perfil de compilación, el binario y el destino (ejemplo, benchmark o prueba), la frecuencia de muestreo, la paleta de colores y los comandos personalizados de perf o dtrace.
El README también incluye una guía para interpretar flamegraphs y notas sobre la medición del rendimiento, como el método USE y recomendaciones para hacer benchmarks antes de optimizar.
Funciones clave
- 01Perfila proyectos de Cargo, binarios, ejemplos, benchmarks y pruebas mediante cargo flamegraph.
- 02Se conecta a procesos en ejecución mediante su PID.
- 03Usa perf en Linux, xctrace en macOS y blondie o DTrace en Windows.
- 04Genera un SVG interactivo que se puede abrir en un navegador.
- 05Admite opciones personalizadas para los comandos perf o dtrace y varias paletas de colores.
- 06Ofrece autocompletado para el binario flamegraph en bash, fish, zsh, powershell y elvish.
Casos de uso
- Encontrar las funciones que más tiempo consumen en una aplicación Rust antes de optimizarla.
- Perfilar un binario de C o C++ sin instalar Perl ni crear pipelines manualmente.
- Comparar en qué se emplea el tiempo durante la ejecución de un benchmark o una prueba.
- Perfilar un servicio en ejecución conectándose a su ID de proceso.
Inicio rápido
- 1
Instala los binarios de flamegraph con Cargo
cargo install flamegraph - 2
Perfila un proyecto de Rust
cargo flamegraph - 3
Perfila un binario cualquiera
flamegraph -- /path/to/binary
Antes de usarlo
- El perfilado depende de las herramientas de cada plataforma: perf en Linux, xctrace en macOS y blondie o dtrace en Windows.
- En Linux con lld (predeterminado desde Rust 1.90.0) o mold, debes añadir la opción del enlazador --no-rosegment; de lo contrario, las trazas de pila pueden ser inexactas.
- El uso de perf sin privilegios puede requerir reducir el valor de perf_event_paranoid, lo que debilita la seguridad del sistema.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es flamegraph?
- Generador de flamegraphs basado en Rust para perfilar proyectos de Cargo o cualquier binario con perf, xctrace o dtrace/blondie, sin Perl. flamegraph genera flamegraphs que muestran en qué emplea su tiempo un programa. Funciona con proyectos de Cargo mediante el subcomando cargo flamegraph y también puede perfilar cualquier binario o un proceso en ejecución a partir de su PID. Las muestras de la pila se recopilan con la herramienta nativa de cada plataforma y se representan en un SVG interactivo basado en la biblioteca Inferno.
- ¿flamegraph es gratuito? ¿Qué licencia tiene?
- flamegraph es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿flamegraph sigue mantenido?
- Mantenimiento activo. El último commit de flamegraph fue el 2 nov 2026.
- ¿Para qué puedo usar flamegraph?
- Encontrar las funciones que más tiempo consumen en una aplicación Rust antes de optimizarla. Perfilar un binario de C o C++ sin instalar Perl ni crear pipelines manualmente. Comparar en qué se emplea el tiempo durante la ejecución de un benchmark o una prueba. Perfilar un servicio en ejecución conectándose a su ID de proceso.
- ¿Cómo se instala flamegraph?
- Instala los binarios de flamegraph con Cargo: cargo install flamegraph Perfila un proyecto de Rust: cargo flamegraph Perfila un binario cualquiera: flamegraph -- /path/to/binary
- ¿Dónde consigo flamegraph?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/flamegraph-rs/flamegraph
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
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.
Herramienta gratuita para Windows que permite aislar problemas de rendimiento de CPU y memoria, con funciones especiales para investigar código del runtime de .NET.
Suite open source de tracing y profiling con SDK, daemons del sistema y una interfaz web para analizar trazas en Android, Linux y Chromium.
Una alternativa al Administrador de tareas para Windows y Linux que muestra detalles de cada proceso, como hilos, memoria, handles, sockets y módulos.
Herramienta de línea de comandos independiente que vigila archivos y directorios y ejecuta un comando cada vez que cambian.