#include "RtsFlags.h"
#include "RtsUtils.h"
#include "MBlock.h"
+#include "Storage.h"
#include "Schedule.h"
#include "Stats.h"
#include "ParTicky.h" /* ToDo: move into Rts.h */
#include "Profiling.h"
-#include "Storage.h"
#include "GetTime.h"
/* huh? */
return GCe_tot_time;
}
+Ticks stat_getElapsedTime(void)
+{
+ return getProcessElapsedTime() - ElapsedTimeStart;
+}
+
/* mut_user_time_during_GC() and mut_user_time()
*
* The former function can be used to get the current mutator time
statsFlush();
statsClose();
}
+ if (GC_coll_times)
+ stgFree(GC_coll_times);
+ GC_coll_times = NULL;
}
/* -----------------------------------------------------------------------------
step *step;
debugBelch(
-" Gen Steps Max Mutable Step Blocks Live Large\n"
-" Blocks Closures Objects\n");
+" Gen Steps Max Mut-list Step Blocks Live Large\n"
+" Blocks Bytes Objects\n");
mut = 0;
for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
for (bd = generations[g].mut_list; bd != NULL; bd = bd->link) {
- mut += bd->free - bd->start;
+ mut += (bd->free - bd->start) * sizeof(W_);
}
debugBelch("%8d %8d %8d %9d", g, generations[g].n_steps,
if (s != 0) {
debugBelch("%36s","");
}
- debugBelch("%6d %8d %8d %8d\n", s, step->n_blocks,
+ debugBelch("%6d %8d %8ld %8d\n", s, step->n_blocks,
live, lge);
}
}