diff options
author | Jeremy Evans <code@jeremyevans.net> | 2023-11-28 10:58:22 -0800 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2023-12-07 11:27:55 -0800 |
commit | f5a01b091673b81cf2e1efa149f84763bdadad98 (patch) | |
tree | 3913c24da4aab26a9ee18797a2d42fdf9fb96d5c | |
parent | 13cd963500106b366c8df9eec5c1b6815e93f07f (diff) | |
download | ruby-f5a01b091673b81cf2e1efa149f84763bdadad98.tar.gz |
Add benchmark for recent optimization to avoid implicit allocations
-rw-r--r-- | benchmark/vm_method_splat_calls.yml | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/benchmark/vm_method_splat_calls.yml b/benchmark/vm_method_splat_calls.yml new file mode 100644 index 0000000000..f2f366e99c --- /dev/null +++ b/benchmark/vm_method_splat_calls.yml @@ -0,0 +1,13 @@ +prelude: | + def f(x=0, y: 0) end + a = [1] + ea = [] + kw = {y: 1} + b = lambda{} +benchmark: + arg_splat: "f(1, *ea)" + arg_splat_block: "f(1, *ea, &b)" + splat_kw_splat: "f(*a, **kw)" + splat_kw_splat_block: "f(*a, **kw, &b)" + splat_kw: "f(*a, y: 1)" + splat_kw_block: "f(*a, y: 1, &b)" |