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