class Barnes::Instruments::Stopwatch
Public Class Methods
new(timepiece = Timepiece)
click to toggle source
# File lib/barnes/instruments/stopwatch.rb, line 27 def initialize(timepiece = Timepiece) @timepiece = timepiece @has_cpu_time = timepiece.respond_to?(:cpu) end
Public Instance Methods
instrument!(state, counters, gauges)
click to toggle source
# File lib/barnes/instruments/stopwatch.rb, line 36 def instrument!(state, counters, gauges) last = state[:stopwatch] wall_elapsed = @timepiece.wall - last[:wall] counters[:'Time.wall'] = wall_elapsed if @has_cpu_time cpu_elapsed = @timepiece.cpu - last[:cpu] idle_elapsed = wall_elapsed - cpu_elapsed counters[:'Time.cpu'] = cpu_elapsed counters[:'Time.idle'] = idle_elapsed if wall_elapsed == 0 counters[:'Time.pct.cpu'] = 0 counters[:'Time.pct.idle'] = 0 else counters[:'Time.pct.cpu'] = 100.0 * cpu_elapsed / wall_elapsed counters[:'Time.pct.idle'] = 100.0 * idle_elapsed / wall_elapsed end end state[:stopwatch] = current end
start!(state)
click to toggle source
# File lib/barnes/instruments/stopwatch.rb, line 32 def start!(state) state[:stopwatch] = current end
Private Instance Methods
current()
click to toggle source
# File lib/barnes/instruments/stopwatch.rb, line 60 def current state = { :wall => @timepiece.wall, } state[:cpu] = @timepiece.cpu if @has_cpu_time state end