class Metric
attr_accessor :var
def initialize(n)
@n = n
@var = 22
end
def run
Benchmark.bm(10) do |x|
x.report("@var") { @n.times { @var } }
x.report("var" ) { @n.times { var } }
x.report("@var =") { @n.times {|i| @var = i } }
x.report("self.var =") { @n.times {|i| self.var = i } }
end
end
end
metric = Metric.new(100_000_000)
metric.run
user system total real
@var 4.430000 0.000000 4.430000 ( 4.428028)
var 4.530000 0.000000 4.530000 ( 4.529164)
@var = 4.470000 0.010000 4.480000 ( 4.480753)
self.var = 5.280000 0.000000 5.280000 ( 5.281529)