class Diagnostics::Sample::Measure
Attributes
gc[W]
Public Class Methods
build(gc: nil, action: nil, &block_action)
click to toggle source
# File lib/diagnostics/sample/measure.rb, line 26 def self.build(gc: nil, action: nil, &block_action) action ||= block_action instance = new(action) instance.configure(gc: gc) instance end
call(gc: nil, action: nil, &block_action)
click to toggle source
# File lib/diagnostics/sample/measure.rb, line 34 def self.call(gc: nil, action: nil, &block_action) instance = build(gc: gc, action: action, &block_action) instance.() end
Public Instance Methods
call(arg=nil)
click to toggle source
# File lib/diagnostics/sample/measure.rb, line 39 def call(arg=nil) logger.trace { "Measuring action (GC: #{gc.inspect})" } ::GC.disable unless gc start_time = clock.now action.(arg) end_time = clock.now ::GC.enable unless gc elapsed_time_nanoseconds = end_time - start_time logger.trace { "Action measured (GC: #{gc.inspect}, Elapsed Time: #{LogText.elapsed_time_milliseconds(elapsed_time_nanoseconds)})" } elapsed_time_nanoseconds end
configure(gc: nil)
click to toggle source
# File lib/diagnostics/sample/measure.rb, line 20 def configure(gc: nil) self.gc = gc unless gc.nil? Clock.configure(self) end
gc()
click to toggle source
# File lib/diagnostics/sample/measure.rb, line 14 def gc @gc ||= Defaults.gc end