/* -----------------------------------------------------------------------------
- * $Id: Profiling.c,v 1.29 2001/12/12 14:31:43 simonmar Exp $
+ * $Id: Profiling.c,v 1.34 2002/11/01 11:17:29 simonmar Exp $
*
* (c) The GHC Team, 1998-2000
*
#include "RetainerProfile.h"
#include "LdvProfile.h"
+#include <string.h>
+
/*
* Profiling allocation arena.
*/
/* figures for the profiling report.
*/
-static lnat total_alloc, total_prof_ticks;
+static ullong total_alloc;
+static lnat total_prof_ticks;
/* Globals for opening the profiling log file(s)
*/
}
}
- fprintf(prof_file, "%-20s %-10s", "COST CENTRE", "MODULE");
+ fprintf(prof_file, "%-30s %-20s", "COST CENTRE", "MODULE");
fprintf(prof_file, "%6s %6s", "%time", "%alloc");
if (RtsFlags.CcFlags.doCostCentres >= COST_CENTRES_VERBOSE) {
fprintf(prof_file, " %5s %9s", "ticks", "bytes");
if (cc_to_ignore(cc)) {
continue;
}
- fprintf(prof_file, "%-20s %-10s", cc->label, cc->module);
+ fprintf(prof_file, "%-30s %-20s", cc->label, cc->module);
fprintf(prof_file, "%6.1f %6.1f",
total_prof_ticks == 0 ? 0.0 : (cc->time_ticks / (StgFloat) total_prof_ticks * 100),
total_alloc == 0 ? 0.0 : (cc->mem_alloc / (StgFloat)
static void
fprint_header( void )
{
- fprintf(prof_file, "%-24s %-10s individual inherited\n", "", "");
+ fprintf(prof_file, "%-24s %-10s individual inherited\n", "", "");
- fprintf(prof_file, "%-24s %-10s", "COST CENTRE", "MODULE");
- fprintf(prof_file, "%8s %5s %5s %5s %5s", "entries", "%time", "%alloc", "%time", "%alloc");
+ fprintf(prof_file, "%-24s %-50s", "COST CENTRE", "MODULE");
+ fprintf(prof_file, "%6s %10s %5s %5s %5s %5s", "no.", "entries", "%time", "%alloc", "%time", "%alloc");
if (RtsFlags.CcFlags.doCostCentres >= COST_CENTRES_VERBOSE) {
fprintf(prof_file, " %5s %9s", "ticks", "bytes");
total_prof_ticks, TICK_MILLISECS);
fprintf(prof_file, "\ttotal alloc = %11s bytes",
- ullong_format_string((ullong) total_alloc * sizeof(W_),
+ ullong_format_string(total_alloc * sizeof(W_),
temp, rtsTrue/*commas*/));
- /* ToDo: 64-bit error! */
#if defined(PROFILING_DETAIL_COUNTS)
fprintf(prof_file, " (%lu closures)", total_allocs);
/* force printing of *all* cost centres if -P -P */
{
- fprintf(prof_file, "%6d %-*s%-*s %-10s",
- ccs->ccsID, indent, "", 24-indent, cc->label, cc->module);
+ fprintf(prof_file, "%-*s%-*s %-50s",
+ indent, "", 24-indent, cc->label, cc->module);
- fprintf(prof_file, "%8lld %5.1f %5.1f %5.1f %5.1f",
- ccs->scc_count,
- total_prof_ticks == 0 ? 0.0 : (ccs->time_ticks / (StgFloat) total_prof_ticks * 100),
- total_alloc == 0 ? 0.0 : (ccs->mem_alloc / (StgFloat) total_alloc * 100),
- total_prof_ticks == 0 ? 0.0 : (ccs->inherited_ticks / (StgFloat) total_prof_ticks * 100),
- total_alloc == 0 ? 0.0 : (ccs->inherited_alloc / (StgFloat) total_alloc * 100)
+ fprintf(prof_file, "%6d %11.0f %5.1f %5.1f %5.1f %5.1f",
+ ccs->ccsID, (double) ccs->scc_count,
+ total_prof_ticks == 0 ? 0.0 : ((double)ccs->time_ticks / (double)total_prof_ticks * 100.0),
+ total_alloc == 0 ? 0.0 : ((double)ccs->mem_alloc / (double)total_alloc * 100.0),
+ total_prof_ticks == 0 ? 0.0 : ((double)ccs->inherited_ticks / (double)total_prof_ticks * 100.0),
+ total_alloc == 0 ? 0.0 : ((double)ccs->inherited_alloc / (double)total_alloc * 100.0)
);
if (RtsFlags.CcFlags.doCostCentres >= COST_CENTRES_VERBOSE) {