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