Actions
Feature #13374
openFix one of performance regressions in method calling
Status:
Open
Assignee:
-
Target version:
-
Description
Seems that LIKELY() introduces some penalties at branching.
Ruby 2.4.1¶
$ ruby -v ~/tmp/bench.rb
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
user system total real
1.460000 0.010000 1.470000 ( 1.462540)
Ruby trunk without patch¶
$ ./miniruby -v -Ilib ~/tmp/bench.rb
ruby 2.5.0dev (2017-03-28 trunk 58156) [x86_64-darwin16]
user system total real
1.580000 0.000000 1.580000 ( 1.579428)
Ruby trunk with patch¶
$ ./miniruby -v -Ilib ~/tmp/bench.rb
ruby 2.5.0dev (2017-03-28 trunk 58156) [x86_64-darwin16]
user system total real
1.510000 0.000000 1.510000 ( 1.505948)
Test code¶
require 'benchmark'
Benchmark.bm do |x|
ary = [1,2,3]
x.report do
20000000.times do
ary.at(2)
end
end
end
Patch¶
Actions
Like0
Like0Like0