prelude: | # frozen_string_literal: true Warning[:experimental] = false string = "The quick brown fox jumped over the lazy dog." array = string.bytes buffer = IO::Buffer.for(string) benchmark: string.each_byte: | upcased = String.new string.each_byte do |byte| upcased << (byte ^ 32) end array.each: | upcased = String.new array.each do |byte| upcased << (byte ^ 32) end buffer.each: | upcased = String.new buffer.each(:U8) do |offset, byte| upcased << (byte ^ 32) end buffer.each_byte: | upcased = String.new buffer.each_byte do |byte| upcased << (byte ^ 32) end