class RubyProf::Thread - ruby-prof

# class RubyProf::Thread

### Public Instance Methods

detect_recursion() click to toggle source

This method detect recursive calls in the call tree of a given thread It should be called only once for each thread

    # File lib/ruby-prof/thread.rb, line 15
    def detect_recursion
      top_call_infos.each(&:detect_recursion)
    end

top_call_infos() click to toggle source

    # File lib/ruby-prof/thread.rb, line 9
    def top_call_infos
      top_methods.map(&:call_infos).flatten.select(&:root?)
    end

top_methods() click to toggle source

    # File lib/ruby-prof/thread.rb, line 3
    def top_methods
      self.methods.select do |method_info|
        method_info.call_infos.detect(&:root?)
      end
    end

total_time() click to toggle source

    # File lib/ruby-prof/thread.rb, line 19
    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

wait_time() click to toggle source

    # File lib/ruby-prof/thread.rb, line 30
    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