Skip to content

Commit 17a26e0

Browse files
committed
Add new GC.stat counters
1 parent 68b1844 commit 17a26e0

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
@@ -593,6 +593,8 @@ typedef struct rb_objspace {
593593
double invoke_time;
594594

595595
size_t minor_gc_count;
596+
size_t minor_gc_count_by_newobj;
597+
size_t minor_gc_count_by_malloc;
596598
size_t major_gc_count;
597599
size_t compact_count;
598600
size_t read_barrier_faults;
@@ -6505,6 +6507,9 @@ gc_start(rb_objspace_t *objspace, unsigned int reason)
65056507
else {
65066508
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_newobj, reason & GPR_FLAG_NEWOBJ);
65076509
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_malloc, reason & GPR_FLAG_MALLOC);
6510+
6511+
if (reason & GPR_FLAG_NEWOBJ) objspace->profile.minor_gc_count_by_newobj++;
6512+
if (reason & GPR_FLAG_MALLOC) objspace->profile.minor_gc_count_by_malloc++;
65086513
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_method, reason & GPR_FLAG_METHOD);
65096514
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_capi, reason & GPR_FLAG_CAPI);
65106515
(void)RB_DEBUG_COUNTER_INC_IF(gc_minor_stress, reason & GPR_FLAG_STRESS);
@@ -7478,6 +7483,8 @@ enum gc_stat_sym {
74787483
gc_stat_sym_malloc_increase_bytes,
74797484
gc_stat_sym_malloc_increase_bytes_limit,
74807485
gc_stat_sym_minor_gc_count,
7486+
gc_stat_sym_minor_gc_count_by_newobj,
7487+
gc_stat_sym_minor_gc_count_by_malloc,
74817488
gc_stat_sym_major_gc_count,
74827489
gc_stat_sym_compact_count,
74837490
gc_stat_sym_read_barrier_faults,
@@ -7528,6 +7535,8 @@ setup_gc_stat_symbols(void)
75287535
S(malloc_increase_bytes);
75297536
S(malloc_increase_bytes_limit);
75307537
S(minor_gc_count);
7538+
S(minor_gc_count_by_newobj);
7539+
S(minor_gc_count_by_malloc);
75317540
S(major_gc_count);
75327541
S(compact_count);
75337542
S(read_barrier_faults);
@@ -7609,6 +7618,8 @@ rb_gc_impl_stat(void *objspace_ptr, VALUE hash_or_sym)
76097618
SET(malloc_increase_bytes, malloc_increase);
76107619
SET(malloc_increase_bytes_limit, malloc_limit);
76117620
SET(minor_gc_count, objspace->profile.minor_gc_count);
7621+
SET(minor_gc_count_by_newobj, objspace->profile.minor_gc_count_by_newobj);
7622+
SET(minor_gc_count_by_malloc, objspace->profile.minor_gc_count_by_malloc);
76127623
SET(major_gc_count, objspace->profile.major_gc_count);
76137624
SET(compact_count, objspace->profile.compact_count);
76147625
SET(read_barrier_faults, objspace->profile.read_barrier_faults);

0 commit comments

Comments
 (0)