summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorJemma Issroff <jemmaissroff@gmail.com>2022-07-15 15:18:30 -0400
committerAaron Patterson <aaron.patterson@gmail.com>2022-07-15 13:39:02 -0700
commitf375280d5a9d2a1da0a0432a9e9fe7ffed910d50 (patch)
treeee07dd830ac9ab7afd5ffb76074db40f96e238b6 /benchmark
parentaed1539ec59ab8048b2fb64a7364d106acbaf30a (diff)
Add benchmarks for setting / getting ivars on generics
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/6144
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/vm_ivar_generic_get.yml17
-rw-r--r--benchmark/vm_ivar_generic_set.yml14
2 files changed, 31 insertions, 0 deletions
diff --git a/benchmark/vm_ivar_generic_get.yml b/benchmark/vm_ivar_generic_get.yml
new file mode 100644
index 0000000000..dae2d37671
--- /dev/null
+++ b/benchmark/vm_ivar_generic_get.yml
@@ -0,0 +1,17 @@
+prelude: |
+ class C < Array
+ attr_reader :a, :b, :c
+ def initialize
+ @a = nil
+ @b = nil
+ @c = nil
+ end
+ end
+
+ c = C.new
+benchmark:
+ vm_ivar_generic_get: |
+ c.a
+ c.b
+ c.c
+loop_count: 30000000
diff --git a/benchmark/vm_ivar_generic_set.yml b/benchmark/vm_ivar_generic_set.yml
new file mode 100644
index 0000000000..102a6577fb
--- /dev/null
+++ b/benchmark/vm_ivar_generic_set.yml
@@ -0,0 +1,14 @@
+prelude: |
+ class C < Array
+ def set_ivars
+ @a = nil
+ @b = nil
+ @c = nil
+ end
+ end
+
+ c = C.new
+benchmark:
+ vm_ivar_generic_set: |
+ c.set_ivars
+loop_count: 30000000