aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2019-07-19 16:24:14 +0900
committerKoichi Sasada <ko1@atdot.net>2019-07-19 16:24:14 +0900
commitfba3e76e3fded3534a34b21412c17af2b02a5f3d (patch)
tree23c604353484ac3c7e291dc52436ea2ecb159fdb
parentae750799c1b28b06d02e50cd26450b9903516526 (diff)
downloadruby-fba3e76e3fded3534a34b21412c17af2b02a5f3d.tar.gz
fix debug counter for Hash counts.
Change debug_counters for Hash object counts: * obj_hash_under4 (1-3) -> obj_hash_1_4 (1-4) * obj_hash_ge4 (4-7) -> obj_hash_5_8 (5-8) * obj_hash_ge8 (>=8) -> obj_hash_g8 (> 8) For example on rdoc benchmark: [RUBY_DEBUG_COUNTER] obj_hash_empty 554,900 [RUBY_DEBUG_COUNTER] obj_hash_under4 572,998 [RUBY_DEBUG_COUNTER] obj_hash_ge4 1,825 [RUBY_DEBUG_COUNTER] obj_hash_ge8 2,344 [RUBY_DEBUG_COUNTER] obj_hash_empty 553,097 [RUBY_DEBUG_COUNTER] obj_hash_1_4 571,880 [RUBY_DEBUG_COUNTER] obj_hash_5_8 982 [RUBY_DEBUG_COUNTER] obj_hash_g8 2,189
-rw-r--r--debug_counter.h12
-rw-r--r--gc.c12
2 files changed, 12 insertions, 12 deletions
diff --git a/debug_counter.h b/debug_counter.h
index 6e0313db3b..97b7312794 100644
--- a/debug_counter.h
+++ b/debug_counter.h
@@ -174,9 +174,9 @@ RB_DEBUG_COUNTER(gc_isptr_maybe)
* * str_nofree: nofree
* * str_fstr: fstr
* * hash_empty: hash is empty
- * * hash_under4: has under 4 entries
- * * hash_ge4: has n entries (4<=n<8)
- * * hash_ge8: has n entries (8<=n)
+ * * hash_1_4: has 1 to 4 entries
+ * * hash_5_8: has 5 to 8 entries
+ * * hash_g8: has n entries (n>8)
* * match_under4: has under 4 oniguruma regions allocated
* * match_ge4: has n regions allocated (4<=n<8)
* * match_ge8: has n regions allocated (8<=n)
@@ -217,9 +217,9 @@ RB_DEBUG_COUNTER(obj_ary_shared)
RB_DEBUG_COUNTER(obj_ary_shared_root_occupied)
RB_DEBUG_COUNTER(obj_hash_empty)
-RB_DEBUG_COUNTER(obj_hash_under4)
-RB_DEBUG_COUNTER(obj_hash_ge4)
-RB_DEBUG_COUNTER(obj_hash_ge8)
+RB_DEBUG_COUNTER(obj_hash_1_4)
+RB_DEBUG_COUNTER(obj_hash_5_8)
+RB_DEBUG_COUNTER(obj_hash_g8)
RB_DEBUG_COUNTER(obj_hash_ar)
RB_DEBUG_COUNTER(obj_hash_st)
RB_DEBUG_COUNTER(obj_hash_transient)
diff --git a/gc.c b/gc.c
index 060e1ed48b..df48bc1269 100644
--- a/gc.c
+++ b/gc.c
@@ -2410,14 +2410,14 @@ obj_free(rb_objspace_t *objspace, VALUE obj)
break;
case T_HASH:
#if USE_DEBUG_COUNTER
- if (RHASH_SIZE(obj) >= 8) {
- RB_DEBUG_COUNTER_INC(obj_hash_ge8);
+ if (RHASH_SIZE(obj) > 8) {
+ RB_DEBUG_COUNTER_INC(obj_hash_g8);
}
- else if (RHASH_SIZE(obj) >= 4) {
- RB_DEBUG_COUNTER_INC(obj_hash_ge4);
+ else if (RHASH_SIZE(obj) > 4) {
+ RB_DEBUG_COUNTER_INC(obj_hash_5_8);
}
- else if (RHASH_SIZE(obj) >= 1) {
- RB_DEBUG_COUNTER_INC(obj_hash_under4);
+ else if (RHASH_SIZE(obj) > 0) {
+ RB_DEBUG_COUNTER_INC(obj_hash_1_4);
}
else {
RB_DEBUG_COUNTER_INC(obj_hash_empty);