summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2022-08-08 11:14:05 +0200
committerJean Boussier <jean.boussier@gmail.com>2022-08-08 15:15:33 +0200
commit1cb77f23046dbfd14703241e82bed2bcd69bf6a1 (patch)
tree440fd2b78b0217eb95c16d6c91f9d8ada270a28a /benchmark
parent289d219758336e1e1d8afe36255fe06079d8daeb (diff)
downloadruby-1cb77f23046dbfd14703241e82bed2bcd69bf6a1.tar.gz
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.
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/buffer_get.yml17
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")