[前][次][番号順一覧][スレッド一覧]

ruby-changes:72562

From: Jemma <ko1@a...>
Date: Fri, 15 Jul 2022 23:29:55 +0900 (JST)
Subject: [ruby-changes:72562] c53439294e (master): Fixes ivar benchmarks to not depend on object allocation

https://git.ruby-lang.org/ruby.git/commit/?id=c53439294e

From c53439294e390595c88c6f3094021ffc7c0147e1 Mon Sep 17 00:00:00 2001
From: Jemma Issroff <jemmaissroff@g...>
Date: Fri, 15 Jul 2022 10:12:51 -0400
Subject: Fixes ivar benchmarks to not depend on object allocation

Prior to this change, we were measuring object allocation as well
as setting instance variables within ivar benchmarks. With this
change, we now only measure setting instance variables within
ivar benchmarks.
---
 benchmark/vm_ivar_embedded_obj_init.yml | 6 ++++--
 benchmark/vm_ivar_extended_obj_init.yml | 6 ++++--
 benchmark/vm_ivar_set_subclass.yml      | 9 ++++++---
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/benchmark/vm_ivar_embedded_obj_init.yml b/benchmark/vm_ivar_embedded_obj_init.yml
index eed6d4c0b9..74fe20a630 100644
--- a/benchmark/vm_ivar_embedded_obj_init.yml
+++ b/benchmark/vm_ivar_embedded_obj_init.yml
@@ -1,12 +1,14 @@ https://github.com/ruby/ruby/blob/trunk/benchmark/vm_ivar_embedded_obj_init.yml#L1
 prelude: |
   class C
-    def initialize
+    def set_ivars
       @a = nil
       @b = nil
       @c = nil
     end
   end
+
+  c = C.new
 benchmark:
   vm_ivar_embedded_obj_init: |
-    C.new
+    c.set_ivars
 loop_count: 30000000
diff --git a/benchmark/vm_ivar_extended_obj_init.yml b/benchmark/vm_ivar_extended_obj_init.yml
index 994e9e6c49..f054bab282 100644
--- a/benchmark/vm_ivar_extended_obj_init.yml
+++ b/benchmark/vm_ivar_extended_obj_init.yml
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/benchmark/vm_ivar_extended_obj_init.yml#L1
 prelude: |
   class C
-    def initialize
+    def set_ivars
       @a = nil
       @b = nil
       @c = nil
@@ -8,7 +8,9 @@ prelude: | https://github.com/ruby/ruby/blob/trunk/benchmark/vm_ivar_extended_obj_init.yml#L8
       @e = nil
     end
   end
+
+  c = C.new
 benchmark:
   vm_ivar_extended_obj_init: |
-    C.new
+    c.set_ivars
 loop_count: 30000000
diff --git a/benchmark/vm_ivar_set_subclass.yml b/benchmark/vm_ivar_set_subclass.yml
index 2653d36ded..bc8bf5bf6b 100644
--- a/benchmark/vm_ivar_set_subclass.yml
+++ b/benchmark/vm_ivar_set_subclass.yml
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/benchmark/vm_ivar_set_subclass.yml#L1
 prelude: |
   class A
-    def initialize
+    def set_ivars
       @a = nil
       @b = nil
       @c = nil
@@ -10,8 +10,11 @@ prelude: | https://github.com/ruby/ruby/blob/trunk/benchmark/vm_ivar_set_subclass.yml#L10
   end
   class B < A; end
   class C < A; end
+
+  b = B.new
+  c = C.new
 benchmark:
   vm_ivar_init_subclass: |
-    B.new
-    C.new
+    b.set_ivars
+    c.set_ivars
 loop_count: 3000000
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]