Last active
January 31, 2017 11:51
-
-
Save PsixokoT/5baed146d4241b05ecde9b57959d3647 to your computer and use it in GitHub Desktop.
native loop vs. ruby loop
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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