From 513a11b477bb334413452b6004bc7d2d0a3eed4f Mon Sep 17 00:00:00 2001 From: Jemma Issroff Date: Wed, 14 Sep 2022 16:48:40 -0400 Subject: Add vm_ivar get, get_unitialized, and lazy_set benchmarks --- benchmark/vm_ivar_get.yml | 37 ++++++++++++++++++++++++++++++++++ benchmark/vm_ivar_get_unintialized.yml | 12 +++++++++++ benchmark/vm_ivar_lazy_set.yml | 12 +++++++++++ 3 files changed, 61 insertions(+) create mode 100644 benchmark/vm_ivar_get.yml create mode 100644 benchmark/vm_ivar_get_unintialized.yml create mode 100644 benchmark/vm_ivar_lazy_set.yml diff --git a/benchmark/vm_ivar_get.yml b/benchmark/vm_ivar_get.yml new file mode 100644 index 0000000000..8c64ffc77a --- /dev/null +++ b/benchmark/vm_ivar_get.yml @@ -0,0 +1,37 @@ +prelude: | + class Example + def initialize + @v0 = 1 + @v1 = 2 + @v3 = 3 + @levar = 1 + end + + def get_value_loop + sum = 0 + + i = 0 + while i < 1000000 + # 10 times to de-emphasize loop overhead + sum += @levar + sum += @levar + sum += @levar + sum += @levar + sum += @levar + sum += @levar + sum += @levar + sum += @levar + sum += @levar + sum += @levar + i += 1 + end + + return sum + end + end + + obj = Example.new +benchmark: + vm_ivar_get: | + obj.get_value_loop +loop_count: 100 diff --git a/benchmark/vm_ivar_get_unintialized.yml b/benchmark/vm_ivar_get_unintialized.yml new file mode 100644 index 0000000000..64db6a79a5 --- /dev/null +++ b/benchmark/vm_ivar_get_unintialized.yml @@ -0,0 +1,12 @@ +prelude: | + class Example + def read + @uninitialized + end + end + + obj = Example.new +benchmark: + vm_ivar_get_uninitialized: | + obj.read +loop_count: 30000000 diff --git a/benchmark/vm_ivar_lazy_set.yml b/benchmark/vm_ivar_lazy_set.yml new file mode 100644 index 0000000000..bbe42574e6 --- /dev/null +++ b/benchmark/vm_ivar_lazy_set.yml @@ -0,0 +1,12 @@ +prelude: | + class Example + def lazy_set + @uninitialized ||= 123 + end + end + + objs = 10000000.times.map { Example.new } +benchmark: + vm_ivar_lazy_set: | + objs.each(&:lazy_set) +loop_count: 1 -- cgit v1.2.3