ruby-prof-flamegraph

A ruby-prof printer that outputs a fold stack file that's compatible with FlameGraph. It is created based on RubyProf::CallStackPrinter.

Awesomeness

FlameGraph is a way to visualize stack trace, making it very obvious where in the program takes the longest time. It is a Perl script takes a "fold stack" file and generates a nice, interactive SVG. The fold stack is usually generated from DTrace or Prof data using stackcollapse.pl, which is included with FlameGraph.

I created this gem because I want to find out where the bottleneck is in SlimWiki's specs, but I don't know DTrace and just want the result quick.

I did not expect this, but generating a company name from Faker causes 44 YAML files to be parsed, taking 28 seconds.

(TODO include image)

To learn more about Flame Graphs, check these out:

Installation

gem 'ruby-prof-flamegraph'

Usage

Just require 'ruby-prof-flamegraph and use RubyProf::FlameGraphPrinter as your printer for ruby-prof. For vanilla ruby-prof, see example.rb.

For rspec-prof, RSpecProf.printer_class = RubyProf::FlameGraphPrinter

Example

See the result in example.svg