From 3e2b58b709dc006c4ba6702953bbdf0a0e78a0e4 Mon Sep 17 00:00:00 2001 From: Adnan Alhomssi Date: Tue, 30 May 2023 15:35:23 +0200 Subject: [PATCH] Add last_full_sweep to GC stats --- base/timing.jl | 1 + src/gc.c | 2 ++ src/gc.h | 1 + 3 files changed, 4 insertions(+) diff --git a/base/timing.jl b/base/timing.jl index 04994914049a0..691db3cbbd260 100644 --- a/base/timing.jl +++ b/base/timing.jl @@ -25,6 +25,7 @@ struct GC_Num mark_time ::Int64 total_sweep_time ::Int64 total_mark_time ::Int64 + last_full_sweep ::Int64 end gc_num() = ccall(:jl_gc_num, GC_Num, ()) diff --git a/src/gc.c b/src/gc.c index 75f385b699977..afd6b3801c588 100644 --- a/src/gc.c +++ b/src/gc.c @@ -3278,6 +3278,8 @@ static int _jl_gc_collect(jl_ptls_t ptls, jl_gc_collection_t collection) uint64_t sweep_time = gc_end_time - start_sweep_time; gc_num.total_sweep_time += sweep_time; gc_num.sweep_time = sweep_time; + if (sweep_full) + gc_num.last_full_sweep = gc_end_time; // sweeping is over // 6. if it is a quick sweep, put back the remembered objects in queued state diff --git a/src/gc.h b/src/gc.h index 7d6aff3499eae..8436a653dc32b 100644 --- a/src/gc.h +++ b/src/gc.h @@ -82,6 +82,7 @@ typedef struct { uint64_t mark_time; uint64_t total_sweep_time; uint64_t total_mark_time; + uint64_t last_full_sweep; } jl_gc_num_t; enum {