summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-07-31 19:24:22 -0400
committerBen Gamari <ben@smart-cactus.org>2020-03-02 19:36:32 -0500
commitd5735ed76eb54584534b18f5c295b44115b61c58 (patch)
treea512234a07f1cb3629694aaa6523992c2037ba30
parentacd135d297d8a1bbe3bf5cef54fa700d3cd1ec56 (diff)
downloadhaskell-wip/gc/instrument-timings.tar.gz
rts: Report nonmoving collector statistics in machine-readable outputwip/gc/instrument-timings
-rw-r--r--rts/Stats.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/rts/Stats.c b/rts/Stats.c
index 89e003ee0c..2fbd8b2655 100644
--- a/rts/Stats.c
+++ b/rts/Stats.c
@@ -1171,6 +1171,26 @@ static void report_machine_readable (const RTSSummaryStats * sum)
MR_STAT_GEN(g, "sync_yield", FMT_Word64, gc_sum->sync_yield);
#endif
}
+ // non-moving collector statistics
+ if (RtsFlags.GcFlags.useNonmoving) {
+ const int n_major_colls = sum->gc_summary_stats[RtsFlags.GcFlags.generations-1].collections;
+ MR_STAT("nonmoving_sync_wall_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_sync_elapsed_ns));
+ MR_STAT("nonmoving_sync_max_pause_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_sync_max_elapsed_ns));
+ MR_STAT("nonmoving_sync_avg_pause_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_sync_elapsed_ns) / n_major_colls);
+
+ MR_STAT("nonmoving_concurrent_cpu_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_cpu_ns));
+ MR_STAT("nonmoving_concurrent_wall_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_elapsed_ns));
+ MR_STAT("nonmoving_concurrent_max_pause_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_max_elapsed_ns));
+ MR_STAT("nonmoving_concurrent_avg_pause_seconds", "f",
+ TimeToSecondsDbl(stats.nonmoving_gc_elapsed_ns) / n_major_colls);
+ }
+
statsPrintf(" ]\n");
}