awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
brendangregg avatar

brendangregg/FlameGraph

0
View on GitHub↗
19,307 stars·2,087 forks·Perl·29 viewswww.brendangregg.com/flamegraphs.html↗

FlameGraph

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.

Features

  • Flame Graph Generators - Transforms folded stack trace data into interactive diagrams for analyzing software execution frequency.
  • CPU Profilers - Samples active code paths and stack traces at specific frequencies to identify which functions consume the most processor time.
  • Kernel Execution Profilers - Samples processor usage at the function or module level to identify hot code paths and quantify time spent in kernel versus user space.
  • Performance Profiling Tools - Provides a suite of scripts for converting stack trace samples into interactive hierarchical visualizations to identify performance bottlenecks.
  • Stack Trace Aggregators - Renders aggregated execution frequency data as interactive, nested rectangles to reveal performance bottlenecks in software call paths.
  • Flame Graph Generators - Converts raw stack trace data into interactive flame graphs to identify frequent code paths.
  • Kernel Event Tracers - Captures system-wide activity via stable, hard-coded kernel tracepoints for system calls, scheduler events, and file system operations.
  • Dynamic Kernel Probes - Attaches probes to live kernel and user-space functions by dynamically patching binary code without requiring system restarts.
  • Monitoring and Observability - Provides a collection of diagnostic scripts and visualization tools for analyzing kernel and user-space performance metrics.
  • Performance Profiling - Analyzes sampled stack traces to identify hot code paths and quantify resource consumption within complex software applications.
  • Differential Profilers - Performs differential profile analysis to highlight performance regressions or improvements by comparing two datasets side-by-side.
  • Performance Regression Analyzers - Compares two performance profiles to highlight code path changes and identify regressions or improvements between software versions.
  • Off-CPU Latency Analyzers - Profiles thread execution states to visualize time spent waiting for locks or input-output operations to resolve application blocking issues.
  • Kernel Observability Programs - Runs custom code within a secure kernel sandbox to enable advanced observability without modifying kernel source.
  • Off-CPU Latency Visualizers - Maps time spent by threads waiting off-processor to their corresponding stack traces.
  • Dynamic Binary Instrumentation - Instruments arbitrary kernel or user-space functions at runtime by dynamically patching code.
  • Observability Tracing - Records user and library function usage, including elapsed and on-processor time, to debug application behavior and performance.
  • System Performance Analyzers - Measures software stack behavior under controlled workloads to identify bottlenecks by correlating execution frequency with system operations.
  • Code Quality and Utilities - Visualization tool for analyzing stack traces and performance.
  • Debugging And Tracing - Visualizes profiled code performance.
  • System Performance Tools - Visualization tool for analyzing performance profiles.
  • Hierarchical Performance Visualizers - Generates interactive diagrams from stack trace data to represent code execution frequency.
  • Memory Profiling - Samples memory usage across time intervals to visualize how a process's working set size grows.
  • I/O Latency Tracers - Captures stack traces and latency for disk or system input-output operations to determine if synchronous operations are impacting application performance.
  • Application Observability - Attaches probes to statically defined tracepoints in user-space applications to monitor behavior.
  • Event Monitoring Systems - Captures kernel and user-level events like system calls and hardware counters to monitor system behavior in real-time.
  • Metric and Performance Monitors - Aggregates event data into histograms, counts, or statistical distributions to identify latency bottlenecks and resource usage patterns.
  • Performance Visualization - Generates interactive diagrams from stack traces to represent code execution frequency and identify performance bottlenecks.
  • Time-Based Performance Visualizers - Maps performance samples into a heat map grid to identify execution variance and temporal perturbations.
  • Sample Quantifiers - Highlights specific code paths or functions within a visualization and calculates the percentage of total samples matching the search term to quantify performance impact.
  • Trace Visualization - Generates interactive hierarchical visualizations from sampled stack trace data to identify frequent code paths.
  • Stack Trace Hierarchy Visualizers - Generates interactive visualizations of code execution paths to identify frequent call sequences.
  • Execution Path Comparison Tools - Generates separate visualizations for different thread states and aligns them to allow direct visual comparison of code path durations.
  • Code Execution Sandboxes - Executes diagnostic programs within a secure, verified kernel environment to prevent system instability.
  • Heat Map Generators - Creates interactive graphical representations of trace data to visualize distribution patterns and identify outliers.
  • Full-Stack Execution Visualizers - Maps hierarchical call stacks into interactive diagrams to reveal structural performance patterns across interpreted and compiled code layers.
  • Graphics Execution Profilers - Captures and correlates processor and graphics execution stacks to identify cross-processor stalls and performance-intensive shader operations.
  • Memory Access Profilers - Examines memory allocation patterns and cache-line sharing to detect performance issues related to memory usage.
  • Stack Trace Formatters - Formats hierarchical stack trace data into a single-line, delimited string structure for flame graph generation.
  • Symbol Resolution Engines - Translates memory addresses from virtual machine environments into human-readable function names using symbol mapping files.
  • Anomaly Detection - Highlights outliers in complex datasets to visually distinguish irregular behavior from standard activity.
  • Full-Stack Execution Tracers - Maps graphics kernel execution back to high-level source code for a complete performance view.
  • Thread Execution State Visualizers - Combines on-processor and off-processor stack traces into a single interactive visualization.
  • Virtual Memory Growth Trackers - Tracks system calls that expand the process heap or memory segments to identify application growth patterns and memory usage trends.
  • Memory Usage Analyzers - Calculates the amount of memory a process actively references over a specific duration to help determine cache and main memory requirements.
  • Performance Distribution Analyzers - Aligns and overlays multiple frequency trails in a single image to compare latency patterns or data distributions across different time intervals or sources.
  • Blocking Data Integrators - Merges blocking call stacks with processor execution profiles to highlight performance bottlenecks.
  • Scheduler Latency Analyzers - Records and reports kernel scheduler events to quantify task migration, context switching, and scheduling delays.
  • Execution Path Visualizers - Maps complex execution paths through hierarchical diagrams to identify bottlenecks and improve software stack performance.
  • Data Filtering - Processes specific subsets of execution paths by applying text-based filtering to input data.
  • Thread Wakeup Analyzers - Records the stack traces of threads that wake up blocked processes to reveal the root cause of lock contention.
  • Memory Allocation Tracers - Provides tools to capture and analyze memory allocation calls for identifying performance bottlenecks and leaks.
  • Wakeup Chain Mappers - Links sequences of thread wakeups to visualize complex dependencies and event chains across the system.
  • Stack Metric Analyzers - Maps trace paths to quantitative values to visualize stack-based data like memory allocation or system call counts.
  • Hardware Performance Monitoring - Collects low-level processor statistics like cache misses and cycles to identify hardware-level performance bottlenecks.
  • Metric Decorators - Adds secondary dimensions like cycles-per-instruction to highlight specific performance characteristics.
  • System Activity Monitoring - Monitors live system events including process execution, file access, and network activity to troubleshoot performance.
  • System Diagnostics - Provides automated diagnostic scripts to collect system state data into compressed archives for performance analysis.
  • System Statistic Visualizers - Generates graphical representations of system performance metrics by processing output from standard monitoring utilities.
  • System Workload Characterizers - Identifies the sources and types of system load by correlating performance metrics with specific code paths and process identifiers.
  • Differential Visualization Inverters - Reverses the color-coding logic of a differential visualization to highlight code paths that have vanished or decreased in frequency between profiles.
  • Profile Normalizers - Adjusts stack counts between datasets to ensure accurate comparisons when profiles are captured under different system loads or timeframes.

Star history

Star history chart for brendangregg/flamegraphStar history chart for brendangregg/flamegraph

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with FlameGraph

These projects share indexed features with FlameGraph. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • iovisor/bcciovisor avatar

    iovisor/bcc

    22,459View on GitHub↗

    BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It functions as a performance analysis tool and debugging utility to capture system events, measure kernel latency, and provide network observability. The project distinguishes itself by providing a build system that integrates with LLVM to compile C-like code into BPF bytecode at runtime. It utilizes BPF Type Format data for relocations to maintain cross-kernel compatibility and extracts kernel headers to ensure the generated programs match the specific kernel version. The toolkit co

    C
    View on GitHub↗22,459
  • brendangregg/perf-toolsbrendangregg avatar

    brendangregg/perf-tools

    10,434View on GitHub↗

    This project is a specialized toolset for profiling kernel latency, analyzing tracepoint frequency, and monitoring system-wide performance data. It functions as a kernel performance profiler, tracepoint analyzer, and a collection of utilities for the Linux ftrace and perf_events subsystems. The toolkit provides high-level abstractions via shell-scripted wrappers to manage complex kernel tracing interfaces. It distinguishes itself through the use of bucket-based event histograms to visualize the distribution of kernel events and the ability to identify functions exceeding specific latency thre

    Shell
    View on GitHub↗10,434
  • bpftrace/bpftracebpftrace avatar

    bpftrace/bpftrace

    9,950View on GitHub↗

    bpftrace is a high-level eBPF tracing tool and kernel instrumentation framework for Linux. It provides a tracing language to instrument kernel and user-space events without recompiling the system, functioning as a dynamic system profiler and event aggregator. The project enables dynamic system tracing and Linux kernel observability by capturing tracepoints and dynamic probes in real time. It allows for kernel data inspection and runtime process debugging by accessing internal data structures and filtering specific process events. Its capability surface covers system performance analysis, inc

    C++bccbpfebpf
    View on GitHub↗9,950
  • kdab/hotspotKDAB avatar

    KDAB/hotspot

    5,074View on GitHub↗

    Hotspot is a graphical user interface for analyzing and visualizing performance data captured by the Linux perf tool. It functions as a performance profiling visualizer and assembly-level profiler that maps performance costs to specific instructions synchronized with original source code. The project distinguishes itself through a remote symbol resolver that maps performance data from embedded targets to local host debug symbols and sysroots. It also includes a specialized off-CPU analysis tool designed to identify thread wait times and I/O blocks using kernel scheduler tracepoints. The tool

    C++
    View on GitHub↗5,074
Compare all 30 related projects→

Frequently asked questions

What does brendangregg/flamegraph do?

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.

What are the main features of brendangregg/flamegraph?

The main features of brendangregg/flamegraph are: Flame Graph Generators, CPU Profilers, Kernel Execution Profilers, Performance Profiling Tools, Stack Trace Aggregators, Kernel Event Tracers, Dynamic Kernel Probes, Monitoring and Observability.

Which projects share features with brendangregg/flamegraph?

Projects with overlapping indexed features include: iovisor/bcc — BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It… brendangregg/perf-tools — This project is a specialized toolset for profiling kernel latency, analyzing tracepoint frequency, and monitoring… bpftrace/bpftrace — bpftrace is a high-level eBPF tracing tool and kernel instrumentation framework for Linux. It provides a tracing… kdab/hotspot — Hotspot is a graphical user interface for analyzing and visualizing performance data captured by the Linux perf tool.… mastra-ai/mastra — Mastra is an orchestration framework designed for building, deploying, and managing autonomous AI agents and… alibaba/arthas — Arthas is a Java diagnostic tool and runtime debugger designed for real-time troubleshooting of applications. It…