Class: Benchmark::Driver::RepeatableRunner
- Inherits:
-
Object
- Object
- Benchmark::Driver::RepeatableRunner
- Defined in:
- lib/benchmark/driver/repeatable_runner.rb
Instance Method Summary collapse
-
#initialize(job) ⇒ RepeatableRunner
constructor
A new instance of RepeatableRunner.
- #run(repeat_count:, runner:) ⇒ Benchmark::Driver::BenchmarkResult
Constructor Details
#initialize(job) ⇒ RepeatableRunner
Returns a new instance of RepeatableRunner.
3 4 5 |
# File 'lib/benchmark/driver/repeatable_runner.rb', line 3 def initialize(job) @job = job end |
Instance Method Details
#run(repeat_count:, runner:) ⇒ Benchmark::Driver::BenchmarkResult
10 11 12 13 14 15 16 17 |
# File 'lib/benchmark/driver/repeatable_runner.rb', line 10 def run(repeat_count:, runner:) real_times = (repeat_count || 1).times.map do runner.call(@job, @job.loop_count) end Benchmark::Driver::BenchmarkResult.new(@job).tap do |result| result.real = real_times.select { |d| d > 0 }.min || real_times.max end end |