summaryrefslogtreecommitdiff
path: root/rts/Stats.h
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-04-11 14:48:49 +0100
committerSimon Marlow <marlowsd@gmail.com>2011-04-11 14:49:12 +0100
commit1fb38442d3a55ac92795aa6c5ed4df82011df724 (patch)
tree3e4aa00f970fb58b4f7b6bb27f16eb9d8b7dbad2 /rts/Stats.h
parent7bf5bf37e7f4f140c883016e9da50106535d2a94 (diff)
downloadhaskell-1fb38442d3a55ac92795aa6c5ed4df82011df724.tar.gz
Refactoring and tidy up
This is a port of some of the changes from my private local-GC branch (which is still in darcs, I haven't converted it to git yet). There are a couple of small functional differences in the GC stats: first, per-thread GC timings should now be more accurate, and secondly we now report average and maximum pause times. e.g. from minimax +RTS -N8 -s: Tot time (elapsed) Avg pause Max pause Gen 0 2755 colls, 2754 par 13.16s 0.93s 0.0003s 0.0150s Gen 1 769 colls, 769 par 3.71s 0.26s 0.0003s 0.0059s
Diffstat (limited to 'rts/Stats.h')
-rw-r--r--rts/Stats.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/rts/Stats.h b/rts/Stats.h
index f3a20ae6a2..0c5178723c 100644
--- a/rts/Stats.h
+++ b/rts/Stats.h
@@ -13,13 +13,18 @@
#include "BeginPrivate.h"
+struct gc_thread_;
+
void stat_startInit(void);
void stat_endInit(void);
-void stat_startGC(void);
-void stat_endGC (lnat alloc, lnat live,
- lnat copied, lnat gen,
- lnat max_copied, lnat avg_copied, lnat slop);
+void stat_startGC(struct gc_thread_ *gct);
+void stat_endGC (struct gc_thread_ *gct, lnat alloc, lnat live,
+ lnat copied, nat gen,
+ lnat max_copied, lnat avg_copied, lnat slop);
+
+void stat_gcWorkerThreadStart (struct gc_thread_ *gct);
+void stat_gcWorkerThreadDone (struct gc_thread_ *gct);
#ifdef PROFILING
void stat_startRP(void);