mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
c4c53310c2
This helps hit inline method caches more frequently. Before this commit: ``` [aaron@TC ruby (trunk)]$ time ./ruby -v benchmark/bm_vm2_poly_singleton.rb ruby 2.4.0dev (2016-09-12 trunk 56141) [x86_64-darwin15] real 0m3.679s user 0m3.632s sys 0m0.022s ``` After this commit: ``` [aaron@TC ruby (trunk)]$ time ./ruby -v benchmark/bm_vm2_poly_singleton.rb ruby 2.4.0dev (2016-09-12 trunk 56141) [x86_64-darwin15] last_commit=Copy the serial number from the super class to the singleton class real 0m2.246s user 0m2.203s sys 0m0.020s ``` [Feature #12364] [ruby-core:75425] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
14 lines
200 B
Ruby
14 lines
200 B
Ruby
class C1
|
|
def m; 1; end
|
|
end
|
|
|
|
o1 = C1.new
|
|
o2 = C1.new
|
|
o2.singleton_class
|
|
|
|
i = 0
|
|
while i<6_000_000 # benchmark loop 2
|
|
o = (i % 2 == 0) ? o1 : o2
|
|
o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
|
|
i += 1
|
|
end
|