1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/internal
Koichi Sasada 5499651ee7 tuning ivar set
* make rb_init_iv_list() simple
* introduce vm_setivar_slowpath() for cache miss cases

../clean/miniruby is 647ee6f091.

Calculating -------------------------------------
                      ./miniruby  ../clean/miniruby  ../ruby_2_7/miniruby
         vm_ivar_init     7.388M             6.814M                5.771M i/s -     30.000M times in 4.060420s 4.402534s 5.198781s
vm_ivar_init_subclass     2.158M             2.147M                1.974M i/s -      3.000M times in 1.390328s 1.397587s 1.519951s
          vm_ivar_set   128.607M            97.931M              140.668M i/s -     30.000M times in 0.233269s 0.306338s 0.213268s
              vm_ivar   144.315M           151.722M              117.734M i/s -     30.000M times in 0.207879s 0.197730s 0.254811s

Comparison:
                      vm_ivar_init
           ./miniruby:   7388398.8 i/s
    ../clean/miniruby:   6814257.1 i/s - 1.08x  slower
 ../ruby_2_7/miniruby:   5770583.9 i/s - 1.28x  slower

             vm_ivar_init_subclass
           ./miniruby:   2157763.6 i/s
    ../clean/miniruby:   2146557.0 i/s - 1.01x  slower
 ../ruby_2_7/miniruby:   1973747.9 i/s - 1.09x  slower

                       vm_ivar_set
 ../ruby_2_7/miniruby: 140668063.8 i/s
           ./miniruby: 128606912.1 i/s - 1.09x  slower
    ../clean/miniruby:  97931027.8 i/s - 1.44x  slower

                           vm_ivar
    ../clean/miniruby: 151722121.9 i/s
           ./miniruby: 144314526.5 i/s - 1.05x  slower
 ../ruby_2_7/miniruby: 117734305.5 i/s - 1.29x  slower
2020-12-16 13:06:13 +09:00
..
array.h tuning trial: newobj with current ec 2020-12-07 08:28:36 +09:00
bignum.h include/ruby/backward/2/r_cast.h: deprecate 2020-08-27 15:03:36 +09:00
bits.h
class.h sync RClass::ext::iv_index_tbl 2020-10-17 08:18:04 +09:00
compar.h
compile.h
compilers.h
complex.h include/ruby/backward/2/r_cast.h: deprecate 2020-08-27 15:03:36 +09:00
cont.h Make Mutex per-Fiber instead of per-Thread 2020-09-14 16:44:09 +12:00
dir.h
enc.h
encoding.h
enum.h
enumerator.h
error.h Disable deprecation warning by the default [Feature #16345] 2020-09-25 09:50:33 +09:00
eval.h
file.h
fixnum.h Update fixnum.h 2020-12-01 20:40:33 +09:00
gc.h Narrowed down unaligned member access region in RB_OBJ_WRITE 2020-12-13 11:57:05 +09:00
hash.h Ractor.make_shareable(obj) 2020-10-21 07:59:24 +09:00
imemo.h include/ruby/backward/2/r_cast.h: deprecate 2020-08-27 15:03:36 +09:00
inits.h
io.h
load.h
loadpath.h
math.h
missing.h
numeric.h Fix ArithmeticSequence#last and ArithmeticSequence#each for non-integer sequences (#3870) 2020-12-09 18:48:59 +09:00
object.h ROBJECT_IV_INDEX_TBL: convert into an inline function 2020-08-19 14:30:57 +09:00
parse.h
proc.h Moved rb_callable_receiver internal 2020-10-06 10:11:51 +09:00
process.h
random.h
range.h Feature #16812: Allow slicing arrays with ArithmeticSequence (#3241) 2020-10-21 02:40:18 +09:00
rational.h Fix ArithmeticSequence#last and ArithmeticSequence#each for non-integer sequences (#3870) 2020-12-09 18:48:59 +09:00
re.h
sanitizers.h
scheduler.h Add support for non-blocking Process.wait. 2020-12-09 08:55:35 +13:00
serial.h
signal.h
static_assert.h
string.h tuning trial: newobj with current ec 2020-12-07 08:28:36 +09:00
struct.h include/ruby/backward/2/r_cast.h: deprecate 2020-08-27 15:03:36 +09:00
symbol.h
thread.h Rename to Fiber#set_scheduler. 2020-11-07 23:39:50 +13:00
time.h
transcode.h
util.h
variable.h tuning ivar set 2020-12-16 13:06:13 +09:00
vm.h fix inline method cache sync bug 2020-12-15 13:29:30 +09:00
warnings.h