Actions
Feature #13482
openImprove performance of "set instance variable"
Status:
Open
Assignee:
-
Target version:
-
Description
"set instance variable" will be faster around 14%.
macOS 10.12 + clang-802.0.41¶
Before¶
user system total real
1.550000 0.000000 1.550000 ( 1.555161)
After¶
user system total real
1.400000 0.000000 1.400000 ( 1.398825)
macOS 10.12 + gcc 6.3.0_1¶
Before¶
user system total real
1.660000 0.000000 1.660000 ( 1.659721)
After¶
user system total real
1.450000 0.000000 1.450000 ( 1.454589)
Ubuntu 16.04 + gcc 5.4.0¶
Before¶
user system total real
0.890000 0.000000 0.890000 ( 0.891217)
After¶
user system total real
0.790000 0.000000 0.790000 ( 0.783157)
Test code¶
require 'benchmark'
Benchmark.bmbm do |x|
x.report do
i = 0
while (i < 50000000)
@obj = 42
i+=1
end
end
end
Patch¶
Updated by watson1978 (Shizuo Fujita) over 7 years ago
- Description updated (diff)
Updated by watson1978 (Shizuo Fujita) over 7 years ago
It has already ensured inlining in where vm_getivar()
(https://github.com/ruby/ruby/blob/524fb0138b773f2ed01441abbcffeda0271175c5/vm_insnhelper.c#L908)
So,I'm guessing that there is no reason what avoid inlining at vm_setivar()
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
- Tracker changed from Bug to Feature
- Backport deleted (
2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN)
Actions
Like0
Like0Like0Like0