lib/ruby-prof/thread.rb in ruby-prof-1.1.0 vs lib/ruby-prof/thread.rb in ruby-prof-1.2.0

- old
+ new

@@ -1,33 +1,18 @@ module RubyProf class Thread - # Returns the root methods (ie, methods that were not called by other methods) that were profiled while - # this thread was executing. Generally there is only one root method (multiple root methods can occur - # when Profile#pause is used). By starting with the root methods, you can descend down the profile - # call tree. - def root_methods - self.methods.select do |method_info| - method_info.root? - end - end - # Returns the total time this thread was executed. def total_time - self.root_methods.inject(0) do |sum, method_info| - method_info.callers.each do |call_info| - sum += call_info.total_time - end - sum - end + self.call_tree.total_time end # Returns the amount of time this thread waited while other thread executed. 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.callers.each do |call_info| - sum += call_info.wait_time + method_info.callers.each do |call_tree| + sum += call_tree.wait_time end sum end end end