require 'benchmark'
total = (ENV['TOTAL'] || 100_000).to_i
STRING = "rdnqsp uxq\nhnokjirs\nb c6rlh|4c@jcb av8\nPvunszwijhy lz kdgy7hlKlR nzqxg\ndqldeg nm-yg vmnb mk gdrn x"
class String
def while_loop
i = 0
while i < @bytes
char = @data[i]
i += 1
end
end
end
Benchmark.bmbm do |x|
x.report("loop") do
total.times do |i|
i
end
end
x.report("while_loop") do
total.times do |i|
STRING.while_loop
end
end
x.report("each_byte") do
total.times do |i|
STRING.each_byte { |c| c }
end
end
end