{
nat i;
Task *task;
+ statsPrintf(" MUT time (elapsed) GC time (elapsed)\n");
for (i = 0, task = all_tasks;
task != NULL;
i++, task = task->all_link) {
- statsPrintf(" Task %2d %-8s : MUT time: %6.2fs (%6.2fs elapsed)\n"
- " GC time: %6.2fs (%6.2fs elapsed)\n\n",
+ statsPrintf(" Task %2d %-8s : %6.2fs (%6.2fs) %6.2fs (%6.2fs)\n",
i,
(task->tso == NULL) ? "(worker)" : "(bound)",
TICK_TO_DBL(task->mut_time),
}
}
+ statsPrintf("\n");
+
{
nat i;
lnat sparks_created = 0;
{
nat g, s;
- statsPrintf("recordMutableGen_sync: %"FMT_Word64"\n", recordMutableGen_sync.spin);
statsPrintf("gc_alloc_block_sync: %"FMT_Word64"\n", gc_alloc_block_sync.spin);
statsPrintf("whitehole_spin: %"FMT_Word64"\n", whitehole_spin);
for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
for (s = 0; s < generations[g].n_steps; s++) {
- statsPrintf("gen[%d].steps[%d].sync_todo: %"FMT_Word64"\n", g, s, generations[g].steps[s].sync_todo.spin);
statsPrintf("gen[%d].steps[%d].sync_large_objects: %"FMT_Word64"\n", g, s, generations[g].steps[s].sync_large_objects.spin);
}
}
}
if (RtsFlags.GcFlags.giveStats == ONELINE_GC_STATS) {
+ char *fmt1, *fmt2;
+ if (RtsFlags.MiscFlags.machineReadable) {
+ fmt1 = " [(\"bytes allocated\", \"%llu\")\n";
+ fmt2 = " ,(\"num_GCs\", \"%d\")\n"
+ " ,(\"average_bytes_used\", \"%ld\")\n"
+ " ,(\"max_bytes_used\", \"%ld\")\n"
+ " ,(\"num_byte_usage_samples\", \"%ld\")\n"
+ " ,(\"peak_megabytes_allocated\", \"%lu\")\n"
+ " ,(\"init_cpu_seconds\", \"%.2f\")\n"
+ " ,(\"init_wall_seconds\", \"%.2f\")\n"
+ " ,(\"mutator_cpu_seconds\", \"%.2f\")\n"
+ " ,(\"mutator_wall_seconds\", \"%.2f\")\n"
+ " ,(\"GC_cpu_seconds\", \"%.2f\")\n"
+ " ,(\"GC_wall_seconds\", \"%.2f\")\n"
+ " ]\n";
+ }
+ else {
+ fmt1 = "<<ghc: %llu bytes, ";
+ fmt2 = "%d GCs, %ld/%ld avg/max bytes residency (%ld samples), %luM in use, %.2f INIT (%.2f elapsed), %.2f MUT (%.2f elapsed), %.2f GC (%.2f elapsed) :ghc>>\n";
+ }
/* print the long long separately to avoid bugginess on mingwin (2001-07-02, mingw-0.5) */
- statsPrintf("<<ghc: %llu bytes, ", GC_tot_alloc*(ullong)sizeof(W_));
- statsPrintf("%d GCs, %ld/%ld avg/max bytes residency (%ld samples), %luM in use, %.2f INIT (%.2f elapsed), %.2f MUT (%.2f elapsed), %.2f GC (%.2f elapsed) :ghc>>\n",
+ statsPrintf(fmt1, GC_tot_alloc*(ullong)sizeof(W_));
+ statsPrintf(fmt2,
total_collections,
ResidencySamples == 0 ? 0 :
AvgResidency*sizeof(W_)/ResidencySamples,