Sha256: b2360f3f9b24c6922771691cc1199c4b58a7d260b5f12fc996d1219d472f1522
Contents?: true
Size: 1.02 KB
Versions: 3
Compression:
Stored size: 1.02 KB
Contents
module RubyProf class Thread def top_methods self.methods.select do |method_info| method_info.call_infos.detect(&:root?) end end def top_call_infos top_methods.map(&:call_infos).flatten.select(&:root?) end # This method detect recursive calls in the call tree of a given thread # It should be called only once for each thread def detect_recursion top_call_infos.each(&:detect_recursion) end def total_time self.top_methods.inject(0) do |sum, method_info| method_info.call_infos.each do |call_info| if call_info.parent.nil? sum += call_info.total_time end end sum end end def wait_time # wait_time, like self:time, is always method local # thus we need to sum over all methods and call infos self.methods.inject(0) do |sum, method_info| method_info.call_infos.each do |call_info| sum += call_info.wait_time end sum end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby-prof-0.16.2 | lib/ruby-prof/thread.rb |
ruby-prof-0.16.1 | lib/ruby-prof/thread.rb |
ruby-prof-0.16.0 | lib/ruby-prof/thread.rb |