diff options
author | Koichi Sasada <ko1@atdot.net> | 2019-07-19 16:24:14 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2019-07-19 16:24:14 +0900 |
commit | fba3e76e3fded3534a34b21412c17af2b02a5f3d (patch) | |
tree | 23c604353484ac3c7e291dc52436ea2ecb159fdb /gc.c | |
parent | ae750799c1b28b06d02e50cd26450b9903516526 (diff) | |
download | ruby-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
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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); |