Skip to content

Commit 94ac154

Browse files
committed
Add new GC.stat counters
1 parent 614f684 commit 94ac154

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

gc/default/default.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,8 @@ typedef struct rb_objspace {
702702
double invoke_time;
703703

704704
size_t minor_gc_count;
705+
size_t minor_gc_count_by_newobj;
706+
size_t minor_gc_count_by_malloc;
705707
size_t major_gc_count;
706708
size_t major_gc_count_by_nofree;
707709
size_t major_gc_count_by_oldgen;
@@ -8649,6 +8651,9 @@ gc_start(rb_objspace_t *objspace, unsigned int reason)
86498651
else {
86508652
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_newobj, reason & GPR_FLAG_NEWOBJ);
86518653
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_malloc, reason & GPR_FLAG_MALLOC);
8654+
8655+
if (reason & GPR_FLAG_NEWOBJ) objspace->profile.minor_gc_count_by_newobj++;
8656+
if (reason & GPR_FLAG_MALLOC) objspace->profile.minor_gc_count_by_malloc++;
86528657
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_method, reason & GPR_FLAG_METHOD);
86538658
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_capi, reason & GPR_FLAG_CAPI);
86548659
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_stress, reason & GPR_FLAG_STRESS);
@@ -9714,6 +9719,8 @@ enum gc_stat_sym {
97149719
gc_stat_sym_malloc_increase_bytes,
97159720
gc_stat_sym_malloc_increase_bytes_limit,
97169721
gc_stat_sym_minor_gc_count,
9722+
gc_stat_sym_minor_gc_count_by_newobj,
9723+
gc_stat_sym_minor_gc_count_by_malloc,
97179724
gc_stat_sym_major_gc_count,
97189725
gc_stat_sym_major_gc_count_by_nofree,
97199726
gc_stat_sym_major_gc_count_by_oldgen,
@@ -9778,6 +9785,8 @@ setup_gc_stat_symbols(void)
97789785
S(malloc_increase_bytes);
97799786
S(malloc_increase_bytes_limit);
97809787
S(minor_gc_count);
9788+
S(minor_gc_count_by_newobj);
9789+
S(minor_gc_count_by_malloc);
97819790
S(major_gc_count);
97829791
S(major_gc_count_by_nofree);
97839792
S(major_gc_count_by_oldgen);
@@ -9874,6 +9883,8 @@ rb_gc_impl_stat(void *objspace_ptr, VALUE hash_or_sym)
98749883
SET(malloc_increase_bytes, gc_malloc_counters_increase_unsigned(objspace, &objspace->malloc_counters.counters));
98759884
SET(malloc_increase_bytes_limit, malloc_limit);
98769885
SET(minor_gc_count, objspace->profile.minor_gc_count);
9886+
SET(minor_gc_count_by_newobj, objspace->profile.minor_gc_count_by_newobj);
9887+
SET(minor_gc_count_by_malloc, objspace->profile.minor_gc_count_by_malloc);
98779888
SET(major_gc_count, objspace->profile.major_gc_count);
98789889
SET(major_gc_count_by_nofree, objspace->profile.major_gc_count_by_nofree);
98799890
SET(major_gc_count_by_oldgen, objspace->profile.major_gc_count_by_oldgen);

0 commit comments

Comments
 (0)