# flamegraph-rs/flamegraph

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/flamegraph-rs-flamegraph).**

5,960 stars · 192 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/flamegraph-rs/flamegraph
- awesome-repositories: https://awesome-repositories.com/repository/flamegraph-rs-flamegraph.md

## Topics

`flamegraphs` `perf` `profiling`

## Description

This project is a profiling utility written in Rust that captures, transforms, and visualizes function call stacks to identify system performance bottlenecks. It functions as a sampling profiler wrapper that converts raw profiling data into interactive flamegraphs, which are hierarchical maps of resource consumption.

The tool provides specialized integration with the Rust build system to profile binaries and performance benchmarks. It also allows for custom profiling configurations, enabling users to override default system profiling tools or recording flags to control how data is collected.

The utility supports application performance monitoring and binary execution analysis. It can capture performance data by attaching to an active process ID to analyze a running application without requiring a restart.

## Tags

### Graphics & Multimedia

- [SVG Data Visualization](https://awesome-repositories.com/f/graphics-multimedia/svg-data-visualization.md) — Generates interactive SVG visualizations that map function call hierarchies to identify performance bottlenecks.

### Development Tools & Productivity

- [Flamegraph Generators](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/performance-resource-profilers/cpu-profilers/flamegraph-generators.md) — Converts sampling data into interactive flamegraph visualizations to pinpoint CPU bottlenecks.
- [Profiler Wrappers](https://awesome-repositories.com/f/development-tools-productivity/text-wrapping-utilities/process-execution-wrappers/profiler-wrappers.md) — Acts as a wrapper around system-level sampling tools to capture and transform raw performance data.

### Operating Systems & Systems Programming

- [Binary Execution Analysis](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-execution-analysis.md) — Captures and maps the call graph of compiled binaries to optimize execution paths and reduce latency.
- [Sampling Profiler Wrappers](https://awesome-repositories.com/f/operating-systems-systems-programming/sampling-profiler-wrappers.md) — Manages the end-to-end process of recording execution data and transforming it into interactive flamegraphs.

### System Administration & Monitoring

- [Application Performance Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring.md) — Visualizes function call stacks to identify CPU-intensive sections of a running program.
- [Live Process Profilers](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/memory-profilers/live-process-profilers.md) — Attaches to active process IDs to capture performance data in real-time without restarting the application. ([source](https://github.com/flamegraph-rs/flamegraph/blob/main/README.md))
- [Call Stack Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/function-monitoring/call-graph-visualizers/function-call-mapping/call-stack-visualizers.md) — Transforms raw profiling data into hierarchical maps of resource consumption by function.
- [Process ID Attachment](https://awesome-repositories.com/f/system-administration-monitoring/process-id-attachment.md) — Enables capturing live execution data by attaching to a running process via its OS process identifier.
- [Single-Pass Stack Aggregators](https://awesome-repositories.com/f/system-administration-monitoring/trace-sampling/stack-trace-aggregators/single-pass-stack-aggregators.md) — Groups identical call sequences into weighted paths to efficiently map resource consumption.

### Testing & Quality Assurance

- [Performance Profiling](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling.md) — Specialized performance analysis tool for identifying resource bottlenecks in Rust programs.
- [Build System Profiling](https://awesome-repositories.com/f/testing-quality-assurance/performance-profilers/build-system-profiling.md) — Integrates with the Rust build system to automatically profile binaries and performance benchmarks. ([source](https://github.com/flamegraph-rs/flamegraph#readme))

### Data & Databases

- [Intermediate Representations](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing-frameworks/intermediate-representations.md) — Normalizes raw text output from various profiling tools into a consistent internal call stack representation.
