diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2022-08-08 11:14:05 +0200 |
---|---|---|
committer | Jean Boussier <jean.boussier@gmail.com> | 2022-08-08 15:15:33 +0200 |
commit | 1cb77f23046dbfd14703241e82bed2bcd69bf6a1 (patch) | |
tree | 440fd2b78b0217eb95c16d6c91f9d8ada270a28a /benchmark | |
parent | 289d219758336e1e1d8afe36255fe06079d8daeb (diff) |
Update IO::Buffer#get_value benchmark
- The method was renamed from `get` to `get_value`
- Comparing to `String#unpack` isn't quite equivalent, `unpack1` is closer.
- Use frozen_string_literal to avoid allocating a format string every time.
- Use `N` format which is equivalent to `:U32` (`uint_32_t` big-endian).
- Disable experimental warnings to not mess up the output.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6221
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/buffer_get.yml | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/benchmark/buffer_get.yml b/benchmark/buffer_get.yml index e375dcf85d..bb9ca7e94a 100644 --- a/benchmark/buffer_get.yml +++ b/benchmark/buffer_get.yml @@ -1,9 +1,10 @@ +prelude: | + # frozen_string_literal: true + Warning[:experimental] = false + buffer = IO::Buffer.new(32, IO::Buffer::MAPPED) + string = "\0" * 32 benchmark: - - name: buffer.get - prelude: buffer = IO::Buffer.new(32, IO::Buffer::MAPPED) - script: buffer.get(:U32, 0) - loop_count: 20000000 - - name: string.unpack - prelude: string = "\0" * 32 - script: string.unpack("C") - loop_count: 20000000 + buffer.get_value: | + buffer.get_value(:U32, 0) + string.unpack1: | + string.unpack1("N") |