Skip to content

Instantly share code, notes, and snippets.

@PsixokoT
Last active January 31, 2017 11:51
Show Gist options
  • Save PsixokoT/5baed146d4241b05ecde9b57959d3647 to your computer and use it in GitHub Desktop.
Save PsixokoT/5baed146d4241b05ecde9b57959d3647 to your computer and use it in GitHub Desktop.
native loop vs. ruby loop
def ruby_loop
yield while true
end
def native_loop_test
time = Time.now
n = 0
loop do
n = n + 1
break if Time.now - time > 5
end
puts "#{n} count with native loop"
end
def ruby_loop_test
time = Time.now
n = 0
ruby_loop do
n = n + 1
break if Time.now - time > 5
end
puts "#{n} count with ruby loop"
end
native_loop_test
ruby_loop_test
require 'benchmark'
def ruby_loop
yield while true
end
def native_loop_test
n = 0
loop do
n = n + 1
break if n > 10_000_000
end
end
def ruby_loop_test
n = 0
ruby_loop do
n = n + 1
break if n > 10_000_000
end
end
Benchmark.bm(10) do |x|
x.report('native:') { native_loop_test }
x.report('ruby:') { ruby_loop_test }
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment