Skip to content

Instantly share code, notes, and snippets.

@czarneckid
Created September 11, 2013 14:41
Show Gist options
  • Save czarneckid/6524608 to your computer and use it in GitHub Desktop.
Save czarneckid/6524608 to your computer and use it in GitHub Desktop.
Ruby Attr Antipattern timing
class Demo
def initialize(something)
@something = something
end
def based_on_something
@something * 2
end
end
require 'benchmark'
demo = Demo.new(5)
Benchmark.measure do
1.upto(5000000) do
demo.based_on_something
end
end
1.9.3p327 :012 > Benchmark.measure do
1.9.3p327 :013 > 1.upto(5000000) do
1.9.3p327 :014 > demo.based_on_something
1.9.3p327 :015?> end
1.9.3p327 :016?> end
=> 2.140000 0.010000 2.150000 ( 2.143686)
class Demo
def initialize(something)
@something = something
end
def based_on_something
something * 2
end
private
attr_reader :something
end
require 'benchmark'
demo = Demo.new(5)
Benchmark.measure do
1.upto(5000000) do
demo.based_on_something
end
end
1.9.3p327 :015 > Benchmark.measure do
1.9.3p327 :016 > 1.upto(5000000) do
1.9.3p327 :017 > demo.based_on_something
1.9.3p327 :018?> end
1.9.3p327 :019?> end
=> 2.620000 0.000000 2.620000 ( 2.628891)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment