From: watson1978@... Date: 2017-04-19T09:35:53+00:00 Subject: [ruby-core:80792] [Ruby trunk Bug#13482] Improve performance of "set instance variable" Issue #13482 has been updated by watson1978 (Shizuo Fujita). 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() ---------------------------------------- Bug #13482: Improve performance of "set instance variable" https://bugs.ruby-lang.org/issues/13482#change-64387 * Author: watson1978 (Shizuo Fujita) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- "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 https://github.com/ruby/ruby/pull/1590 -- https://bugs.ruby-lang.org/ Unsubscribe: