aboutsummaryrefslogtreecommitdiffstats
path: root/debug_counter.h
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2019-10-01 16:45:14 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2019-10-03 15:24:09 +0900
commit3ffd98c5cd040a4081617b3bc6f9062237937b9b (patch)
treef2193b04d532ba36bf7c751d66475bc39e637b3f /debug_counter.h
parent84fc1de5125a6f7c61609bf153f0359b3da55d8d (diff)
downloadruby-3ffd98c5cd040a4081617b3bc6f9062237937b9b.tar.gz
add debug counters for vm_search_method_slowpath()
Implemented fine-grained inspection of cache misshits. Handy for counting the reasons why an inline method cache was evicted.
Diffstat (limited to 'debug_counter.h')
-rw-r--r--debug_counter.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/debug_counter.h b/debug_counter.h
index cb2222a869..35ffe08c8d 100644
--- a/debug_counter.h
+++ b/debug_counter.h
@@ -26,6 +26,11 @@
* * mc_cme_complement: callable_method_entry complement counts.
* * mc_cme_complement_hit: callable_method_entry cache hit counts.
* * mc_search_super: search_method() call counts.
+ * * mc_miss_by_nome: inline mc miss by no ment.
+ * * mc_miss_by_distinct: ... by distinct ment.
+ * * mc_miss_by_refine: ... by ment being refined.
+ * * mc_miss_by_visi: ... by visibility change.
+ * * mc_miss_spurious: spurious inline mc misshit.
*/
RB_DEBUG_COUNTER(mc_inline_hit)
RB_DEBUG_COUNTER(mc_inline_miss)
@@ -36,6 +41,11 @@ RB_DEBUG_COUNTER(mc_class_serial_miss)
RB_DEBUG_COUNTER(mc_cme_complement)
RB_DEBUG_COUNTER(mc_cme_complement_hit)
RB_DEBUG_COUNTER(mc_search_super)
+RB_DEBUG_COUNTER(mc_miss_by_nome)
+RB_DEBUG_COUNTER(mc_miss_by_distinct)
+RB_DEBUG_COUNTER(mc_miss_by_refine)
+RB_DEBUG_COUNTER(mc_miss_by_visi)
+RB_DEBUG_COUNTER(mc_miss_spurious)
/*
* call cache fastpath usage