aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2023-11-28 10:58:22 -0800
committerJeremy Evans <code@jeremyevans.net>2023-12-07 11:27:55 -0800
commitf5a01b091673b81cf2e1efa149f84763bdadad98 (patch)
tree3913c24da4aab26a9ee18797a2d42fdf9fb96d5c
parent13cd963500106b366c8df9eec5c1b6815e93f07f (diff)
downloadruby-f5a01b091673b81cf2e1efa149f84763bdadad98.tar.gz
Add benchmark for recent optimization to avoid implicit allocations
-rw-r--r--benchmark/vm_method_splat_calls.yml13
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)"