Repolode
flamegraph-rs

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

    Instala los binarios de flamegraph con Cargo

    cargo install flamegraph
  2. 2

    Perfila un proyecto de Rust

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