Module: Benchmark::Timing
- Defined in:
- lib/benchmark/timing.rb
Class Method Summary collapse
- .clean_env ⇒ Object
- .mean(samples) ⇒ Object
- .resample_mean(samples, resample_times = 100) ⇒ Object
- .stddev(samples, m = nil) ⇒ Object
- .variance(samples, m = nil) ⇒ Object
Class Method Details
.clean_env ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/benchmark/timing.rb', line 31 def self.clean_env # rbx if GC.respond_to? :run GC.run(true) else GC.start end end |
.mean(samples) ⇒ Object
3 4 5 6 |
# File 'lib/benchmark/timing.rb', line 3 def self.mean(samples) sum = samples.inject(0) { |acc, i| acc + i } sum / samples.size end |
.resample_mean(samples, resample_times = 100) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/benchmark/timing.rb', line 20 def self.resample_mean(samples, resample_times=100) resamples = [] resample_times.times do resample = samples.map { samples[rand(samples.size)] } resamples << Timing.mean(resample) end resamples end |
.stddev(samples, m = nil) ⇒ Object
16 17 18 |
# File 'lib/benchmark/timing.rb', line 16 def self.stddev(samples, m=nil) Math.sqrt variance(samples, m) end |
.variance(samples, m = nil) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/benchmark/timing.rb', line 8 def self.variance(samples, m=nil) m ||= mean(samples) total = samples.inject(0) { |acc, i| acc + ((i - m) ** 2) } total / samples.size end |