зеркало из https://github.com/github/ruby.git
Add debug counter for ivar inline cache misses that could hit
This commit adds a debug counter for the case where the inline cache *missed* but the ivar index table has an entry for that ivar. This is a case where a polymorphic cache could help
This commit is contained in:
Родитель
f259906eab
Коммит
4219cb7adb
|
@ -123,6 +123,7 @@ RB_DEBUG_COUNTER(ivar_set_ic_hit)
|
|||
RB_DEBUG_COUNTER(ivar_set_ic_miss)
|
||||
RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)
|
||||
RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)
|
||||
RB_DEBUG_COUNTER(ivar_set_ic_miss_iv_hit)
|
||||
RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)
|
||||
RB_DEBUG_COUNTER(ivar_get_base)
|
||||
RB_DEBUG_COUNTER(ivar_set_base)
|
||||
|
|
|
@ -1246,6 +1246,7 @@ vm_setivar(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic, const str
|
|||
ptr = ROBJECT_IVPTR(obj);
|
||||
}
|
||||
RB_OBJ_WRITE(obj, &ptr[index], val);
|
||||
RB_DEBUG_COUNTER_INC(ivar_set_ic_miss_iv_hit);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче