# brendangregg/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/brendangregg-flamegraph).**

19,307 stars · 2,087 forks · Perl

## Links

- GitHub: https://github.com/brendangregg/FlameGraph
- Homepage: http://www.brendangregg.com/flamegraphs.html
- awesome-repositories: https://awesome-repositories.com/repository/brendangregg-flamegraph.md

## Description

FlameGraph is a performance profiling and visualization toolkit designed to identify bottlenecks in software execution. It functions as a processing engine that transforms raw stack trace samples into interactive, hierarchical diagrams. By representing aggregated execution frequency as nested rectangles, the tool allows developers to visualize hot code paths and analyze system behavior across both kernel and user-space environments.

The project distinguishes itself through its ability to perform differential profile analysis, which highlights performance regressions or improvements by comparing two datasets side-by-side. It supports advanced diagnostic techniques, including the investigation of off-CPU latency, memory access patterns, and scheduler delays. The visualization engine is highly flexible, offering multiple rendering styles such as inverted icicle charts and radial sunbursts, and it can apply semantic color-coding to distinguish between different programming languages or runtimes.

Beyond core visualization, the toolkit provides a comprehensive suite for system observability. It includes utilities for filtering trace data, mapping symbols in virtual machine environments, and correlating performance metrics with specific system operations. The software is designed to process folded, line-based stack representations, making it compatible with a wide range of event-based tracing sources and performance monitoring workflows.

## Tags

### Data & Databases

- [Flame Graph Generators](https://awesome-repositories.com/f/data-databases/interactive-graph-visualizers/flame-graph-generators.md) — Transforms folded stack trace data into interactive diagrams for analyzing software execution frequency.
- [Hierarchical Performance Visualizers](https://awesome-repositories.com/f/data-databases/data-visualization/hierarchical-performance-visualizers.md) — Generates interactive diagrams from stack trace data to represent code execution frequency. ([source](http://www.brendangregg.com/blog/2014-10-31/cpi-flame-graphs.html))
- [Data Filtering](https://awesome-repositories.com/f/data-databases/data-filtering.md) — Processes specific subsets of execution paths by applying text-based filtering to input data. ([source](http://www.brendangregg.com/offcpuanalysis.html))

### Development Tools & Productivity

- [CPU Profilers](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/performance-resource-profilers/cpu-profilers.md) — Samples active code paths and stack traces at specific frequencies to identify which functions consume the most processor time. ([source](http://www.brendangregg.com/perf.html))
- [Off-CPU Latency Analyzers](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/performance-resource-profilers/cpu-profilers/off-cpu-latency-analyzers.md) — Profiles thread execution states to visualize time spent waiting for locks or input-output operations to resolve application blocking issues. ([source](http://www.brendangregg.com/methodology.html))
- [Memory Profiling](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/performance-resource-profilers/memory-profiling.md) — Samples memory usage across time intervals to visualize how a process's working set size grows. ([source](http://www.brendangregg.com/wss.html))
- [Execution Path Comparison Tools](https://awesome-repositories.com/f/development-tools-productivity/side-by-side-diff-viewers/execution-path-comparison-tools.md) — Generates separate visualizations for different thread states and aligns them to allow direct visual comparison of code path durations. ([source](http://www.brendangregg.com/FlameGraphs/hotcoldflamegraphs.html))
- [Thread Wakeup Analyzers](https://awesome-repositories.com/f/development-tools-productivity/thread-managers/thread-dumps/thread-wakeup-analyzers.md) — Records the stack traces of threads that wake up blocked processes to reveal the root cause of lock contention. ([source](http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html))

### System Administration & Monitoring

- [Kernel Execution Profilers](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/execution-tracers/kernel-tracing-frameworks/kernel-execution-profilers.md) — Samples processor usage at the function or module level to identify hot code paths and quantify time spent in kernel versus user space. ([source](http://www.brendangregg.com/dtrace.html))
- [Performance Profiling Tools](https://awesome-repositories.com/f/system-administration-monitoring/performance-profiling-tools.md) — Provides a suite of scripts for converting stack trace samples into interactive hierarchical visualizations to identify performance bottlenecks. ([source](http://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html))
- [Stack Trace Aggregators](https://awesome-repositories.com/f/system-administration-monitoring/trace-sampling/stack-trace-aggregators.md) — Renders aggregated execution frequency data as interactive, nested rectangles to reveal performance bottlenecks in software call paths. ([source](http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html))
- [Flame Graph Generators](https://awesome-repositories.com/f/system-administration-monitoring/trace-visualization/flame-graph-generators.md) — Converts raw stack trace data into interactive flame graphs to identify frequent code paths. ([source](http://www.brendangregg.com/flamegraphs.html))
- [Kernel Event Tracers](https://awesome-repositories.com/f/system-administration-monitoring/event-monitoring-systems/kernel-event-tracers.md) — Captures system-wide activity via stable, hard-coded kernel tracepoints for system calls, scheduler events, and file system operations. ([source](http://www.brendangregg.com/perf.html))
- [Dynamic Kernel Probes](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/dynamic-binary-instrumentation/dynamic-kernel-probes.md) — Attaches probes to live kernel and user-space functions by dynamically patching binary code without requiring system restarts.
- [Monitoring and Observability](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability.md) — Provides a collection of diagnostic scripts and visualization tools for analyzing kernel and user-space performance metrics.
- [Off-CPU Latency Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/log-analysis-tools/latency-monitoring/off-cpu-latency-visualizers.md) — Maps time spent by threads waiting off-processor to their corresponding stack traces. ([source](http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html))
- [Dynamic Binary Instrumentation](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/dynamic-binary-instrumentation.md) — Instruments arbitrary kernel or user-space functions at runtime by dynamically patching code. ([source](http://www.brendangregg.com/perf.html))
- [Observability Tracing](https://awesome-repositories.com/f/system-administration-monitoring/observability-tracing.md) — Records user and library function usage, including elapsed and on-processor time, to debug application behavior and performance. ([source](http://www.brendangregg.com/dtrace.html))
- [System Performance Analyzers](https://awesome-repositories.com/f/system-administration-monitoring/system-performance-monitors/system-performance-analyzers.md) — Measures software stack behavior under controlled workloads to identify bottlenecks by correlating execution frequency with system operations. ([source](http://www.brendangregg.com/activebenchmarking.html))
- [Application Observability](https://awesome-repositories.com/f/system-administration-monitoring/application-observability.md) — Attaches probes to statically defined tracepoints in user-space applications to monitor behavior. ([source](http://www.brendangregg.com/perf.html))
- [Event Monitoring Systems](https://awesome-repositories.com/f/system-administration-monitoring/event-monitoring-systems.md) — Captures kernel and user-level events like system calls and hardware counters to monitor system behavior in real-time. ([source](http://www.brendangregg.com/ebpf.html))
- [Metric and Performance Monitors](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors.md) — Aggregates event data into histograms, counts, or statistical distributions to identify latency bottlenecks and resource usage patterns. ([source](http://www.brendangregg.com/ebpf.html))
- [Performance Visualization](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/performance-visualization.md) — Generates interactive diagrams from stack traces to represent code execution frequency and identify performance bottlenecks. ([source](http://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html))
- [Time-Based Performance Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/performance-visualization/time-based-performance-visualizers.md) — Maps performance samples into a heat map grid to identify execution variance and temporal perturbations. ([source](http://www.brendangregg.com/flamescope.html))
- [Sample Quantifiers](https://awesome-repositories.com/f/system-administration-monitoring/trace-sampling/sample-quantifiers.md) — Highlights specific code paths or functions within a visualization and calculates the percentage of total samples matching the search term to quantify performance impact. ([source](http://www.brendangregg.com/blog/2015-08-11/flame-graph-search.html))
- [Trace Visualization](https://awesome-repositories.com/f/system-administration-monitoring/trace-visualization.md) — Generates interactive hierarchical visualizations from sampled stack trace data to identify frequent code paths. ([source](http://www.brendangregg.com/index.html))
- [Stack Trace Hierarchy Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/trace-visualization/stack-trace-hierarchy-visualizers.md) — Generates interactive visualizations of code execution paths to identify frequent call sequences. ([source](http://www.brendangregg.com/blog/2017-06-30/package-flame-graph.html))
- [Anomaly Detection](https://awesome-repositories.com/f/system-administration-monitoring/anomaly-detection.md) — Highlights outliers in complex datasets to visually distinguish irregular behavior from standard activity. ([source](http://www.brendangregg.com/colonygraphs.html))
- [Full-Stack Execution Tracers](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/execution-tracers/kernel-tracing-frameworks/full-stack-execution-tracers.md) — Maps graphics kernel execution back to high-level source code for a complete performance view. ([source](http://www.brendangregg.com/blog/2024-10-29/ai-flame-graphs.html))
- [Thread Execution State Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/execution-path-visualization/thread-execution-state-visualizers.md) — Combines on-processor and off-processor stack traces into a single interactive visualization. ([source](http://www.brendangregg.com/FlameGraphs/hotcoldflamegraphs.html))
- [Virtual Memory Growth Trackers](https://awesome-repositories.com/f/system-administration-monitoring/memory-management/idle-memory-trackers/virtual-memory-growth-trackers.md) — Tracks system calls that expand the process heap or memory segments to identify application growth patterns and memory usage trends. ([source](http://www.brendangregg.com/FlameGraphs/memoryflamegraphs.html))
- [Memory Usage Analyzers](https://awesome-repositories.com/f/system-administration-monitoring/memory-usage-analyzers.md) — Calculates the amount of memory a process actively references over a specific duration to help determine cache and main memory requirements. ([source](http://www.brendangregg.com/wss.html))
- [Performance Distribution Analyzers](https://awesome-repositories.com/f/system-administration-monitoring/performance-distribution-analyzers.md) — Aligns and overlays multiple frequency trails in a single image to compare latency patterns or data distributions across different time intervals or sources. ([source](http://www.brendangregg.com/frequencytrails.html))
- [Blocking Data Integrators](https://awesome-repositories.com/f/system-administration-monitoring/performance-profiling-tools/blocking-data-integrators.md) — Merges blocking call stacks with processor execution profiles to highlight performance bottlenecks. ([source](http://www.brendangregg.com/FlameGraphs/hotcoldflamegraphs.html))
- [Scheduler Latency Analyzers](https://awesome-repositories.com/f/system-administration-monitoring/resource-scheduling/kernel-schedulers/scheduler-latency-analyzers.md) — Records and reports kernel scheduler events to quantify task migration, context switching, and scheduling delays. ([source](http://www.brendangregg.com/perf.html))
- [Hardware Performance Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/hardware-performance-monitoring.md) — Collects low-level processor statistics like cache misses and cycles to identify hardware-level performance bottlenecks. ([source](http://www.brendangregg.com/perf.html))
- [Metric Decorators](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/metric-decorators.md) — Adds secondary dimensions like cycles-per-instruction to highlight specific performance characteristics. ([source](http://www.brendangregg.com/blog/2015-11-06/java-mixed-mode-flame-graphs.html))
- [System Activity Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/system-activity-monitoring.md) — Monitors live system events including process execution, file access, and network activity to troubleshoot performance. ([source](http://www.brendangregg.com/dtrace.html))
- [System Diagnostics](https://awesome-repositories.com/f/system-administration-monitoring/system-diagnostics.md) — Provides automated diagnostic scripts to collect system state data into compressed archives for performance analysis. ([source](http://www.brendangregg.com/dtrace.html))
- [System Statistic Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/system-monitoring/system-statistic-visualizers.md) — Generates graphical representations of system performance metrics by processing output from standard monitoring utilities. ([source](http://www.brendangregg.com/dtkshdemos.html))
- [System Workload Characterizers](https://awesome-repositories.com/f/system-administration-monitoring/workload-visualization-tools/system-workload-characterizers.md) — Identifies the sources and types of system load by correlating performance metrics with specific code paths and process identifiers. ([source](http://www.brendangregg.com/methodology.html))

### Testing & Quality Assurance

- [Performance Profiling](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling.md) — Analyzes sampled stack traces to identify hot code paths and quantify resource consumption within complex software applications. ([source](http://www.brendangregg.com/flamegraphs.html))
- [Differential Profilers](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling/differential-profilers.md) — Performs differential profile analysis to highlight performance regressions or improvements by comparing two datasets side-by-side.
- [Differential Visualization Inverters](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling/differential-profilers/differential-visualization-inverters.md) — Reverses the color-coding logic of a differential visualization to highlight code paths that have vanished or decreased in frequency between profiles. ([source](http://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html))
- [Profile Normalizers](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling/differential-profilers/profile-normalizers.md) — Adjusts stack counts between datasets to ensure accurate comparisons when profiles are captured under different system loads or timeframes. ([source](http://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html))

### Artificial Intelligence & ML

- [Performance Regression Analyzers](https://awesome-repositories.com/f/artificial-intelligence-ml/regression-analysis/performance-regression-analyzers.md) — Compares two performance profiles to highlight code path changes and identify regressions or improvements between software versions.
- [Execution Path Visualizers](https://awesome-repositories.com/f/artificial-intelligence-ml/model-performance-visualizations/execution-path-visualizers.md) — Maps complex execution paths through hierarchical diagrams to identify bottlenecks and improve software stack performance. ([source](http://www.brendangregg.com/blog/2025-12-05/leaving-intel.html))

### Operating Systems & Systems Programming

- [Kernel Observability Programs](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/kernel-development/kernel-observability-programs.md) — Runs custom code within a secure kernel sandbox to enable advanced observability without modifying kernel source. ([source](http://www.brendangregg.com/blog/2024-03-10/ebpf-documentary.html))
- [Memory Allocation Tracers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/memory-allocation-tracers.md) — Provides tools to capture and analyze memory allocation calls for identifying performance bottlenecks and leaks. ([source](http://www.brendangregg.com/FlameGraphs/memoryflamegraphs.html))

### DevOps & Infrastructure

- [I/O Latency Tracers](https://awesome-repositories.com/f/devops-infrastructure/container-runtimes/operation-tracing/i-o-latency-tracers.md) — Captures stack traces and latency for disk or system input-output operations to determine if synchronous operations are impacting application performance. ([source](http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html))
- [Code Execution Sandboxes](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/code-execution-runtimes/code-execution-sandboxes.md) — Executes diagnostic programs within a secure, verified kernel environment to prevent system instability. ([source](http://www.brendangregg.com/blog/2024-07-22/no-more-blue-fridays.html))

### Graphics & Multimedia

- [Heat Map Generators](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/heat-map-generators.md) — Creates interactive graphical representations of trace data to visualize distribution patterns and identify outliers. ([source](http://www.brendangregg.com/index.html))

### Software Engineering & Architecture

- [Full-Stack Execution Visualizers](https://awesome-repositories.com/f/software-engineering-architecture/full-stack-execution-visualizers.md) — Maps hierarchical call stacks into interactive diagrams to reveal structural performance patterns across interpreted and compiled code layers.
- [Graphics Execution Profilers](https://awesome-repositories.com/f/software-engineering-architecture/full-stack-execution-visualizers/graphics-execution-profilers.md) — Captures and correlates processor and graphics execution stacks to identify cross-processor stalls and performance-intensive shader operations. ([source](http://www.brendangregg.com/blog/2025-05-01/doom-gpu-flame-graphs.html))
- [Memory Access Profilers](https://awesome-repositories.com/f/software-engineering-architecture/shared-memory-management/memory-access-profilers.md) — Examines memory allocation patterns and cache-line sharing to detect performance issues related to memory usage. ([source](http://www.brendangregg.com/perf.html))
- [Stack Trace Formatters](https://awesome-repositories.com/f/software-engineering-architecture/stacks/stack-trace-formatters.md) — Formats hierarchical stack trace data into a single-line, delimited string structure for flame graph generation. ([source](http://www.brendangregg.com/blog/2016-10-21/linux-efficient-profiler.html))
- [Symbol Resolution Engines](https://awesome-repositories.com/f/software-engineering-architecture/symbol-resolution-engines.md) — Translates memory addresses from virtual machine environments into human-readable function names using symbol mapping files. ([source](http://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html))
- [Wakeup Chain Mappers](https://awesome-repositories.com/f/software-engineering-architecture/request-validation/validation-chains/wakeup-chain-mappers.md) — Links sequences of thread wakeups to visualize complex dependencies and event chains across the system. ([source](http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html))
- [Stack Metric Analyzers](https://awesome-repositories.com/f/software-engineering-architecture/stacks/stack-metric-analyzers.md) — Maps trace paths to quantitative values to visualize stack-based data like memory allocation or system call counts. ([source](http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html))
