Skip to content

Instantly share code, notes, and snippets.

@onemanstartup
Last active August 29, 2015 14:13
Show Gist options
  • Save onemanstartup/e896daf3ef3a344611b3 to your computer and use it in GitHub Desktop.
Save onemanstartup/e896daf3ef3a344611b3 to your computer and use it in GitHub Desktop.
require 'benchmark'
# user system total real
# 2.150000 0.200000 2.350000 ( 2.397291)
# 2.830000 0.160000 2.990000 ( 3.060009)
# user system total real
# 2.130000 0.160000 2.290000 ( 2.324952)
# 2.810000 0.170000 2.980000 ( 3.022856)
#1000
#1000
def long_method
a = []
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
end
def many_short_methods
a = []
100.times { a = short_1 a}
a
end
def short_1 (a)
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
a << 1
end
n = 50000
Benchmark.bm do |x|
x.report { n.times { long_method } }
x.report { n.times { many_short_methods } }
end
Benchmark.bm do |x|
x.report { n.times { long_method } }
x.report { n.times { many_short_methods } }
end
puts long_method.count
puts many_short_methods.count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment