Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. eflame

eflame

ISCPerl

A Flame Graph profiler for Erlang that uses the erlang:trace/3 API to visualize call stacks.

GitHubGitHub
429 stars86 forks0 contributors

What is eflame?

eflame is a profiling tool for Erlang that generates Flame Graphs, which are visual representations of call stack data to help identify performance bottlenecks. It leverages Erlang's built-in tracing capabilities to capture stack samples and produces interactive SVG graphs for analysis.

Target Audience

Erlang developers and performance engineers who need to analyze and optimize the performance of their Erlang applications, particularly those dealing with complex concurrency or suspected blocking calls.

Value Proposition

Developers choose eflame because it provides straightforward, non-intrusive profiling using Erlang's standard tracing API, requires no code modifications, and offers clear visualizations that highlight blocking calls and process-specific behavior.

Overview

Flame Graph profiler for Erlang

Use Cases

Best For

  • Identifying performance bottlenecks in Erlang applications through visual call stack analysis.
  • Profiling specific Erlang processes individually to understand their performance characteristics.
  • Detecting and visualizing blocking calls within Erlang code, highlighted in blue in the flame graph.
  • Analyzing the performance of build tools like rebar during compilation tasks.
  • Conducting non-intrusive profiling that doesn't require modifying application code.
  • Generating interactive SVG flame graphs from Erlang trace data for detailed performance investigation.

Not Ideal For

  • Real-time or continuous performance monitoring scenarios requiring live dashboards
  • Projects focused on memory usage analysis or garbage collection tuning rather than call stacks
  • Environments lacking Perl or Unix shell tooling for data processing
  • Systems where tracing overhead must be absolutely minimal to avoid skewing performance results

Pros & Cons

Pros

Non-Intrusive Profiling

Leverages Erlang's built-in tracing API (erlang:trace/3), enabling performance analysis without code modifications or instrumentation.

Blocking Call Detection

Highlights blocking calls in blue within flame graphs, making it straightforward to identify performance bottlenecks in Erlang processes.

Process-Specific Analysis

Generates separate flame graphs for each traced Erlang process, aiding in concurrency debugging and isolated performance review.

Flexible Data Processing

Supports shell scripts and Perl utilities for custom filtering and transformation of stack data, as shown in the README examples with grep and sort commands.

Cons

Complex Setup and Cleanup

Requires extensive shell and Perl scripting for data transformation, as evidenced by the multi-step examples in the README, which can be cumbersome and error-prone.

External Tool Dependencies

Relies on Perl and Unix shell tools for processing, adding setup complexity and potential compatibility issues in non-Unix or minimalist environments.

Limited Profiling Scope

Focuses only on call stacks and blocking calls, lacking integrated features for memory profiling, I/O analysis, or other performance metrics.

Frequently Asked Questions

Quick Stats

Stars429
Forks86
Contributors0
Open Issues2
Last commit2 years ago
CreatedSince 2013

Tags

#tracing#developer-tools#observability#performance-analysis#flame-graph#profiling#erlang#debugging

Built With

E
Erlang

Included in

Elixir13.1kErlang1.7k
Auto-fetched 19 hours ago

Related Projects

observer_cliobserver_cli

Visualize Erlang/Elixir Nodes On The Command Line

Stars1,522
Forks92
Last commit1 month ago
visualixirvisualixir

A process/message visualizer for BEAM nodes.💪👁

Stars1,327
Forks46
Last commit3 years ago
epereper

Erlang performance and debugging tools

Stars439
Forks126
Last commit8 years ago
ex_debug_toolbarex_debug_toolbar

A debug web toolbar for Phoenix projects to display all sorts of information about request

Stars406
Forks11
Last commit2 years 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