module Morpheus::Benchmarking::HasBenchmarking
Mixin for any class that needs benchmarking
Public Instance Methods
start_benchmark(opts)
click to toggle source
# File lib/morpheus/benchmarking.rb, line 141 def start_benchmark(opts) @benchmark_record = BenchmarkRecord.new(opts) return @benchmark_record end
stop_benchmark(exit_code=0, err=nil)
click to toggle source
finish the current benchmark and optionally print the time taken.
# File lib/morpheus/benchmarking.rb, line 147 def stop_benchmark(exit_code=0, err=nil) if defined?(@benchmark_record) && @benchmark_record @benchmark_record.stop(exit_code, err) @last_benchmark_record = @benchmark_record @benchmark_record = nil return @last_benchmark_record else return nil end end
with_benchmark(opts, &block)
click to toggle source
def benchmark_record
@benchmark_record
end
# File lib/morpheus/benchmarking.rb, line 122 def with_benchmark(opts, &block) exit_code, err = 0, nil begin start_benchmark(opts) if block_given? result = block.call() exit_code, err = Morpheus::Cli::CliRegistry.parse_command_result(result) end rescue => ex raise ex exit_code = 1 err = ex.msg ensure stop_benchmark(exit_code, err) end #return result return exit_code, err end