diff options
author | Koichi Sasada <[email protected]> | 2019-07-19 16:24:14 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2019-07-19 16:24:14 +0900 |
commit | fba3e76e3fded3534a34b21412c17af2b02a5f3d (patch) | |
tree | 23c604353484ac3c7e291dc52436ea2ecb159fdb | |
parent | ae750799c1b28b06d02e50cd26450b9903516526 (diff) |
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.h | 12 | ||||
-rw-r--r-- | gc.c | 12 |
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) @@ -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); |