#include "RtsUtils.h"
#include "RtsFlags.h"
#include "Profiling.h"
-#include "Storage.h"
#include "ProfHeap.h"
#include "Stats.h"
#include "Hash.h"
, "RET_BCO"
, "RET_SMALL"
- , "RET_VEC_SMALL"
, "RET_BIG"
- , "RET_VEC_BIG"
, "RET_DYN"
, "UPDATE_FRAME"
, "CATCH_FRAME"
census->drag_total = 0;
}
+STATIC_INLINE void
+freeEra(Census *census)
+{
+ arenaFree(census->arena);
+ freeHashTable(census->hash, NULL);
+}
+
/* --------------------------------------------------------------------------
* Increases era by 1 and initialize census[era].
* Reallocates gi[] and increases its size if needed.
{
}
+void freeProfiling1( void )
+{
+}
+
void initProfiling2( void )
{
if (RtsFlags.ProfFlags.doHeapProfile) {
}
#endif
+ {
+ nat t;
+ for (t = 0; t <= era; t++) {
+ freeEra( &censuses[t] );
+ }
+ }
+ stgFree(censuses);
+
seconds = mut_user_time();
printSample(rtsTrue, seconds);
printSample(rtsFalse, seconds);
p += buf_append(p, ccs->cc->module, buf_end);
p += buf_append(p, ".CAF", buf_end);
} else {
+ p += buf_append(p, ccs->cc->label, buf_end);
if (ccs->prevStack != NULL && ccs->prevStack != CCS_MAIN) {
p += buf_append(p, "/", buf_end);
}
- p += buf_append(p, ccs->cc->label, buf_end);
}
if (p >= buf_end) {
#ifdef PROFILING
switch (RtsFlags.ProfFlags.doHeapProfile) {
case HEAP_BY_CCS:
- fprint_ccs(hp_file, (CostCentreStack *)ctr->identity, 25);
+ fprint_ccs(hp_file, (CostCentreStack *)ctr->identity, RtsFlags.ProfFlags.ccsLength);
break;
case HEAP_BY_MOD:
case HEAP_BY_DESCR: