Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. DTrace
  3. FlameGraph

FlameGraph

Perlv1.0

A visualization tool for profiling data that converts stack traces into interactive flame graphs to identify performance bottlenecks.

Visit WebsiteGitHubGitHub
19.5k stars2.1k forks0 contributors

What is FlameGraph?

FlameGraph is a collection of Perl scripts that generate flame graph visualizations from profiling data. It solves the problem of interpreting complex performance profiles by converting stack traces into an intuitive visual format where the width of each box corresponds to the time spent in that function.

Target Audience

Performance engineers, system administrators, and developers who need to analyze CPU, memory, or other resource usage in applications and systems.

Value Proposition

Developers choose FlameGraph because it provides a standardized, interactive way to visualize profiling data across multiple platforms, making performance bottlenecks immediately visible without requiring deep expertise in raw profiling tools.

Overview

Stack trace visualizer

Use Cases

Best For

  • Identifying CPU hotspots in Linux applications using perf_events
  • Analyzing kernel and user-space performance with DTrace on BSD/Solaris systems
  • Debugging Java application performance using jstack profiles
  • Comparing performance before and after code changes with differential flame graphs
  • Visualizing memory allocation patterns in complex applications
  • Teaching performance analysis concepts through intuitive visualizations

Not Ideal For

  • Real-time performance monitoring systems needing live updates and alerts
  • Teams without access to low-level profiling tools like perf or DTrace on their target systems
  • Developers seeking a fully integrated, GUI-based profiling suite within their IDE
  • Environments where Perl is not available or cannot be installed due to policy constraints

Pros & Cons

Pros

Multi-Platform Profiler Support

Works with data from Linux perf_events, DTrace, SystemTap, Java profilers, and more, as evidenced by the numerous stackcollapse-* scripts provided in the README for different systems.

Interactive Visualization

Generates SVG flame graphs with zoom and search features, allowing users to click boxes to focus on specific stack frames and use regex highlighting for deeper analysis, as shown in the example interactions.

Customizable Output

Offers various color palettes, adjustable dimensions, and options like inverted views, enabling tailored visualizations for specific analysis needs, with commands like --colors and --width documented in the options section.

Differential Analysis

Supports performance comparison between states using consistent palettes via the --cp option, making it easy to identify changes in profiles, as demonstrated in the consistent palette examples.

Cons

Multi-Step Manual Process

Requires capturing stacks, folding them with specific scripts, and generating graphs, which is more cumbersome and error-prone compared to automated, integrated profiling tools.

Perl Dependency

Being written in Perl, it may not run in environments without Perl, limiting adoption in modern containerized or restricted setups where Perl isn't standard.

Sparse Real-Time Features

Primarily designed for static, post-mortem analysis, lacking built-in support for live monitoring or continuous profiling without additional tooling and scripting.

Frequently Asked Questions

Quick Stats

Stars19,525
Forks2,105
Contributors0
Open Issues121
Last commit1 year ago
CreatedSince 2011

Tags

#stack-trace#dtrace#cpu-profiling#svg#perf#performance-profiling#memory-profiling#visualization

Built With

P
Perl

Links & Resources

Website

Included in

Robotic Tooling3.8kDTrace163
Auto-fetched 22 hours ago

Related Projects

bccbcc

BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more

Stars22,449
Forks4,051
Last commit4 days ago
tracytracy

Frame profiler

Stars16,110
Forks1,094
Last commit1 day ago
sanitizersanitizer

AddressSanitizer, ThreadSanitizer, MemorySanitizer

Stars12,392
Forks1,088
Last commit20 days ago
gdb-dashboardgdb-dashboard

Modular visual interface for GDB in Python

Stars12,209
Forks818
Last commit7 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub