X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FStats.h;h=ee706db254073a7df8b7fa8e59fddb7ee5449818;hb=03a9ff01812afc81eb5236fd3063cbec44cf469e;hp=297cc52ce9d861f07b033af31fba704d22da0a99;hpb=f5a4ddffad3528a8be6ba063a4cd0cb685e3f5fd;p=ghc-hetmet.git diff --git a/ghc/rts/Stats.h b/ghc/rts/Stats.h index 297cc52..ee706db 100644 --- a/ghc/rts/Stats.h +++ b/ghc/rts/Stats.h @@ -1,18 +1,36 @@ /* ----------------------------------------------------------------------------- - * $Id: Stats.h,v 1.10 2000/12/19 14:30:39 simonmar Exp $ * - * (c) The GHC Team, 1998-1999 + * (c) The GHC Team, 1998-2005 * * Statistics and timing-related functions. * * ---------------------------------------------------------------------------*/ +#ifndef STATS_H +#define STATS_H + +#include "Task.h" + extern void stat_startInit(void); extern void stat_endInit(void); extern void stat_startGC(void); -extern void stat_endGC(lnat alloc, lnat collect, lnat live, - lnat copied, lnat gen); +extern void stat_endGC (lnat alloc, lnat collect, lnat live, + lnat copied, lnat scavd_copied, lnat gen); + +#ifdef PROFILING +extern void stat_startRP(void); +extern void stat_endRP(nat, +#ifdef DEBUG_RETAINER + nat, int, +#endif + double); +#endif /* PROFILING */ + +#if defined(PROFILING) || defined(DEBUG) +extern void stat_startHeapCensus(void); +extern void stat_endHeapCensus(void); +#endif extern void stat_startExit(void); extern void stat_endExit(void); @@ -22,8 +40,19 @@ extern void stat_workerStop(void); extern void initStats(void); -extern void stat_describe_gens(void); extern double mut_user_time_during_GC(void); extern double mut_user_time(void); -extern HsInt getAllocations( void ); +#ifdef PROFILING +extern double mut_user_time_during_RP(void); +extern double mut_user_time_during_heap_census(void); +#endif /* PROFILING */ + +extern void statDescribeGens( void ); +extern HsInt64 getAllocations( void ); + +extern void stat_getTimes ( long *currentElapsedTime, + long *currentUserTime, + long *elapsedGCTime ); + +#endif /* STATS_H */