module DeepCover::Tools::Profiling

Public Instance Methods

dont_profile() { || ... } click to toggle source
# File lib/deep_cover/tools/profiling.rb, line 37
def dont_profile
  pause if profiler_loaded?
  yield
ensure
  resume if profiler_loaded?
end
pause() click to toggle source
# File lib/deep_cover/tools/profiling.rb, line 16
def pause
  profiler.pause
end
profile(do_start = true) { || ... } click to toggle source

Basic utilities using forwarding methods

# File lib/deep_cover/tools/profiling.rb, line 29
def profile(do_start = true)
  return yield unless do_start
  start
  yield
  stop
  report
end
profiler_loaded?() click to toggle source
# File lib/deep_cover/tools/profiling.rb, line 44
def profiler_loaded?
  !!@profiler
end
report() click to toggle source
# File lib/deep_cover/tools/profiling.rb, line 24
def report
  profiler.report(@results)
end
resume() click to toggle source
# File lib/deep_cover/tools/profiling.rb, line 20
def resume
  profiler.resume
end
start() click to toggle source

Simple forwarding to implementation

# File lib/deep_cover/tools/profiling.rb, line 8
def start
  profiler.start
end
stop() click to toggle source
# File lib/deep_cover/tools/profiling.rb, line 12
def stop
  @results = profiler.stop
end

Private Instance Methods

profiler() click to toggle source

Dependency injection

# File lib/deep_cover/tools/profiling.rb, line 51
def profiler
  @profiler = RubyProfProfiler.new
end