Details
Description
MMTk attempts to print its statistics in a single row like so:
{{
============================ MMTk Statistics Totals ============================
GC time.mu time.gc perf.mu perf.gc refType scan finalize prepare precopy stacks root forward release init finish L1I_MISSES.mu L1I_MISSES.gc
7 6751.76 5881.21 0 0 99.35 5038.20 22.58 0.28 0.92 4.99 713.75 0.00 0.65 0.12 0.14 2330019756995 1443109010784
Total time: 12632.98 ms
------------------------------ End MMTk Statistics -----------------------------
}}
Hopefully the problems with this approach are clear to see from a human readers perspective: i) Headers do not always line up with values, ii) It's even harder to read with many counters as the output becomes wider than your terminal
Attached is a trivial patch that instead prints one statistic per line, like so:
{{
============================ MMTk Statistics Totals ============================
GC: 7
time.mu: 6872.53
time.gc: 5854.95
perf.mu: 0
perf.gc: 0
refType: 101.65
scan: 5008.27
finalize: 22.64
prepare: 0.30
precopy: 0.89
stacks: 4.79
root: 715.20
forward: 0.00
release: 0.66
init: 0.16
finish: 0.18
L1I_MISSES.mu: 1569810545957(SCALED)
L1I_MISSES.gc: 951335255621(SCALED)
Total time: 12727.48 ms
------------------------------ End MMTk Statistics -----------------------------
}}
As a human I certainly prefer the second output, however I have no idea how many scripts this change would break. If a consensus can be reached and more human readability is desired then perhaps this patch can be applied.
This work is motivated by another patch that I am about to submit that increases the number of statistics MMTk reports (thus increasing problems of wide output)
Kind regards
Laurence
Although I agree that the current format for MMTk statistics is not very friendly to humans, especially when hardware performance counters or Immix collectors add their totals, there is one thing that makes it IMHO superior to the proposed format: AWK-friendliness. Newlines simply don't make for very good field separators.