Skip to content

Commit

Permalink
Add GC metric last_full_sweep (#50018)
Browse files Browse the repository at this point in the history
Records the time that the last full sweep ran.
  • Loading branch information
kpamnany committed May 31, 2023
1 parent 715cff2 commit 8c739b1
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 0 deletions.
1 change: 1 addition & 0 deletions base/timing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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, ())
Expand Down
3 changes: 3 additions & 0 deletions src/gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3283,6 +3283,9 @@ 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
Expand Down
1 change: 1 addition & 0 deletions src/gc.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 8c739b1

Please sign in to comment.