lib/flamegraph.rb in flamegraph-0.0.1 vs lib/flamegraph.rb in flamegraph-0.0.2

- old
+ new

@@ -1,23 +1,24 @@ require "json" +require "fast_stack" require "flamegraph/version" -require "flamegraph/sampler" require "flamegraph/renderer" module Flamegraph - def self.generate(filename=nil) - sampler = Flamegraph::Sampler.new - sampler.start - yield - results = sampler.finish + def self.generate(filename=nil, opts = {}) + fidelity = opts[:fidelity] || 0.5 - renderer = Flamegraph::Renderer.new(results) - result = renderer.graph_html + backtraces = FastStack.profile(fidelity) do + yield + end + renderer = Flamegraph::Renderer.new(backtraces) + rendered = renderer.graph_html + if filename File.open(filename,"w") do |f| - f.write(result) + f.write(rendered) end end - result + rendered end end