diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2022-09-26 18:06:12 +1300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-26 18:06:12 +1300 |
commit | 025b8701c09813c40339bd8fa1c75e0e5eaf7120 (patch) | |
tree | 95bb45a27aeb14c9e224baa6c5e6d0ef75a49697 /benchmark | |
parent | ecffc6a203822a828d00afece9c9cd782ff60a66 (diff) | |
download | ruby-025b8701c09813c40339bd8fa1c75e0e5eaf7120.tar.gz |
Add several new methods for getting and setting buffer contents. (#6434)
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/buffer_each.yml | 27 | ||||
-rw-r--r-- | benchmark/buffer_get.yml | 25 |
2 files changed, 47 insertions, 5 deletions
diff --git a/benchmark/buffer_each.yml b/benchmark/buffer_each.yml new file mode 100644 index 0000000000..417941104e --- /dev/null +++ b/benchmark/buffer_each.yml @@ -0,0 +1,27 @@ +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 diff --git a/benchmark/buffer_get.yml b/benchmark/buffer_get.yml index bb9ca7e94a..9e1f99d64e 100644 --- a/benchmark/buffer_get.yml +++ b/benchmark/buffer_get.yml @@ -1,10 +1,25 @@ prelude: | # frozen_string_literal: true Warning[:experimental] = false - buffer = IO::Buffer.new(32, IO::Buffer::MAPPED) - string = "\0" * 32 + string = "The quick brown fox jumped over the lazy dog." + buffer = IO::Buffer.for(string) + format = [:U32, :U32, :U32, :U32] benchmark: - buffer.get_value: | - buffer.get_value(:U32, 0) string.unpack1: | - string.unpack1("N") + [ + string.unpack1("N"), + string.unpack1("N", offset: 4), + string.unpack1("N", offset: 8), + string.unpack1("N", offset: 12), + ] + buffer.get_value: | + [ + buffer.get_value(:U32, 0), + buffer.get_value(:U32, 4), + buffer.get_value(:U32, 8), + buffer.get_value(:U32, 12), + ] + buffer.get_values: | + buffer.get_values(format, 0) + string.unpack: | + string.unpack("NNNN") |