Method: Benchmark.bm

Defined in:
lib/benchmark.rb

.bm(label_width = 0, *labels, &blk) ⇒ Object

A simple interface to the #benchmark method, #bm generates sequential reports with labels. label_width and labels parameters have the same meaning as for #benchmark.

require 'benchmark'

n = 5000000
Benchmark.bm(7) do |x|
  x.report("for:")   { for i in 1..n; a = "1"; end }
  x.report("times:") { n.times do   ; a = "1"; end }
  x.report("upto:")  { 1.upto(n) do ; a = "1"; end }
end

Generates:

              user     system      total        real
for:      0.960000   0.000000   0.960000 (  0.957966)
times:    0.960000   0.000000   0.960000 (  0.960423)
upto:     0.950000   0.000000   0.950000 (  0.954864)


216
217
218
# File 'lib/benchmark.rb', line 216

def bm(label_width = 0, *labels, &blk) # :yield: report
  benchmark(CAPTION, label_width, FORMAT, *labels, &blk)
end