Commit 8ae1fd33 authored by dmp's avatar dmp

Fix bug in one-line stats printing

The code that prints the "one-line" stats (i.e. the RTS -t flag) was
incorreclty printing zeros for some time values. These time values
were computed inside a conditional that was only true when printing
detailed stats (i.e. the RTS -s or -S flags).

This commit simply moves the computation out of the conditional so
they are available for the one-line stats output.
parent 2d520511
......@@ -547,6 +547,18 @@ stat_exit(int alloc)
gc_elapsed += GC_coll_elapsed[i];
}
init_cpu = end_init_cpu - start_init_cpu;
init_elapsed = end_init_elapsed - start_init_elapsed;
exit_cpu = end_exit_cpu - start_exit_cpu;
exit_elapsed = end_exit_elapsed - start_exit_elapsed;
mut_elapsed = start_exit_elapsed - end_init_elapsed - gc_elapsed;
mut_cpu = start_exit_cpu - end_init_cpu - gc_cpu
- PROF_VAL(RP_tot_time + HC_tot_time);
if (mut_cpu < 0) { mut_cpu = 0; }
if (RtsFlags.GcFlags.giveStats >= SUMMARY_GC_STATS) {
showStgWord64(GC_tot_alloc*sizeof(W_),
temp, rtsTrue/*commas*/);
......@@ -635,21 +647,9 @@ stat_exit(int alloc)
}
#endif
init_cpu = end_init_cpu - start_init_cpu;
init_elapsed = end_init_elapsed - start_init_elapsed;
exit_cpu = end_exit_cpu - start_exit_cpu;
exit_elapsed = end_exit_elapsed - start_exit_elapsed;
statsPrintf(" INIT time %6.2fs (%6.2fs elapsed)\n",
TICK_TO_DBL(init_cpu), TICK_TO_DBL(init_elapsed));
mut_elapsed = start_exit_elapsed - end_init_elapsed - gc_elapsed;
mut_cpu = start_exit_cpu - end_init_cpu - gc_cpu
- PROF_VAL(RP_tot_time + HC_tot_time);
if (mut_cpu < 0) { mut_cpu = 0; }
statsPrintf(" MUT time %6.2fs (%6.2fs elapsed)\n",
TICK_TO_DBL(mut_cpu), TICK_TO_DBL(mut_elapsed));
statsPrintf(" GC time %6.2fs (%6.2fs elapsed)\n",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment