class PoiseProfiler::Timing
Public Instance Methods
reset!()
click to toggle source
Calls superclass method
PoiseProfiler::Base#reset!
# File lib/poise_profiler/timing.rb, line 44 def reset! timers.clear super end
resource_completed(resource)
click to toggle source
# File lib/poise_profiler/timing.rb, line 24 def resource_completed(resource) key = resource.resource_name.to_s.end_with?('_test') ? :test_resources : :resources timers[key]["#{resource.resource_name}[#{resource.name}]"] += resource.elapsed_time timers[:classes][resource.class.name] += resource.elapsed_time end
run_completed(node)
click to toggle source
# File lib/poise_profiler/timing.rb, line 30 def run_completed(node) Chef::Log.debug('Processing poise-profiler timing data') puts('Poise Profiler Timing:') puts_timer(:resources, 'Resource') puts_timer(:test_resources, 'Test Resource') unless timers[:test_resources].empty? puts_timer(:classes, 'Class') puts("Profiler JSON: #{Chef::JSONCompat.to_json(timers)}") if config.fetch('timing_json', ENV['CI'] || node['CI']) puts('') end
run_failed(_run_error)
click to toggle source
# File lib/poise_profiler/timing.rb, line 40 def run_failed(_run_error) run_completed(nil) end
Private Instance Methods
puts_timer(key, label)
click to toggle source
# File lib/poise_profiler/timing.rb, line 55 def puts_timer(key, label) puts "Time #{label}" puts "------------ -------------" timers[key].sort_by{ |k,v| -v }.each do |val, run_time| puts "%12f %s" % [run_time, val] end puts "" end
timers()
click to toggle source
# File lib/poise_profiler/timing.rb, line 51 def timers @timers ||= Hash.new {|hash, key| hash[key] = Hash.new(0) } end