1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/tool/ruby_vm/views
卜部昌平 d45a013a1a extend rb_call_cache
Prior to this changeset, majority of inline cache mishits resulted
into the same method entry when rb_callable_method_entry() resolves
a method search.  Let's not call the function at the first place on
such situations.

In doing so we extend the struct rb_call_cache from 44 bytes (in
case of 64 bit machine) to 64 bytes, and fill the gap with
secondary class serial(s).  Call cache's class serials now behavies
as a LRU cache.

Calculating -------------------------------------
                           ours         2.7         2.6
vm2_poly_same_method     2.339M      1.744M      1.369M i/s - 6.000M times in 2.565086s 3.441329s 4.381386s

Comparison:
             vm2_poly_same_method
                ours:   2339103.0 i/s
                 2.7:   1743512.3 i/s - 1.34x  slower
                 2.6:   1369429.8 i/s - 1.71x  slower
2019-11-07 17:41:30 +09:00
..
_attributes.erb
_c_expr.erb
_comptime_insn_stack_increase.erb Combine call info and cache to speed up method invocation 2019-10-24 18:03:42 +09:00
_copyright.erb
_insn_entry.erb
_insn_len_info.erb
_insn_name_info.erb
_insn_operand_info.erb
_insn_sp_pc_dependency.erb
_insn_type_chars.erb
_leaf_helpers.erb
_mjit_compile_insn.erb Combine call info and cache to speed up method invocation 2019-10-24 18:03:42 +09:00
_mjit_compile_insn_body.erb
_mjit_compile_ivar.erb Check frozen flag on MJIT setinstancevariable 2019-09-04 11:10:21 +09:00
_mjit_compile_pc_and_sp.erb
_mjit_compile_send.erb extend rb_call_cache 2019-11-07 17:41:30 +09:00
_notice.erb
_sp_inc_helpers.erb
_trace_instruction.erb
insns.inc.erb
insns_info.inc.erb Combine call info and cache to speed up method invocation 2019-10-24 18:03:42 +09:00
mjit_compile.inc.erb Combine call info and cache to speed up method invocation 2019-10-24 18:03:42 +09:00
opt_sc.inc.erb
optinsn.inc.erb
optunifs.inc.erb
vm.inc.erb
vmtc.inc.erb