class Trashed::Instruments::Stopwatch

Public Class Methods

new(timepiece = Timepiece) click to toggle source
# File lib/trashed/instruments/stopwatch.rb, line 4
def initialize(timepiece = Timepiece)
  @timepiece = timepiece
  @has_cpu_time = timepiece.respond_to?(:cpu)
end

Public Instance Methods

measure(state, timings, gauges) click to toggle source
# File lib/trashed/instruments/stopwatch.rb, line 14
def measure(state, timings, gauges)
  wall_elapsed = @timepiece.wall - state.delete(:stopwatch_wall)
  timings[:'Time.wall'] = wall_elapsed
  if @has_cpu_time
    cpu_elapsed = @timepiece.cpu - state.delete(:stopwatch_cpu)
    idle_elapsed = wall_elapsed - cpu_elapsed

    timings[:'Time.cpu']      = cpu_elapsed
    timings[:'Time.idle']     = idle_elapsed

    if wall_elapsed == 0
      timings[:'Time.pct.cpu']  = 0
      timings[:'Time.pct.idle'] = 0
    else
      timings[:'Time.pct.cpu']  = 100.0 * cpu_elapsed  / wall_elapsed
      timings[:'Time.pct.idle'] = 100.0 * idle_elapsed / wall_elapsed
    end
  end
end
start(state, timings, gauges) click to toggle source
# File lib/trashed/instruments/stopwatch.rb, line 9
def start(state, timings, gauges)
  state[:stopwatch_wall] = @timepiece.wall
  state[:stopwatch_cpu]  = @timepiece.cpu if @has_cpu_time
end