RFR: FTS/LTS timestamps garble the hs_err
Aleksey Shipilev
shade at redhat.com
Tue Aug 1 15:25:30 UTC 2017
That happens because "%8lf" takes 6 characters after decimal point on my machine. Which means
two-digit seconds start to overflow. Solution:
$ hg diff
diff -r b0d726d962fc src/share/vm/gc/shenandoah/shenandoahHeap.cpp
--- a/src/share/vm/gc/shenandoah/shenandoahHeap.cpp Tue Aug 01 14:49:57 2017 +0200
+++ b/src/share/vm/gc/shenandoah/shenandoahHeap.cpp Tue Aug 01 17:24:07 2017 +0200
@@ -934,6 +934,7 @@
"HS=humongous(starts), HC=humongous(continuation),");
st->print_cr("CS=collection set, R=root, CP=critical pins, "
"TAMS=top-at-mark-start (previous, next)");
+ st->print_cr("FTS=first use timestamp, LTS=last use timestamp");
_ordered_regions->print(st);
}
diff -r b0d726d962fc src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp
--- a/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp Tue Aug 01 14:49:57 2017 +0200
+++ b/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp Tue Aug 01 17:24:07 2017 +0200
@@ -146,8 +146,8 @@
st->print("|G %3d%%", (int) ((double) get_gclab_allocs() * 100 / capacity()));
st->print("|S %3d%%", (int) ((double) get_shared_allocs() * 100 / capacity()));
st->print("|L %3d%%", (int) ((double) get_live_data_bytes() * 100 / capacity()));
- st->print("|FTS %8lf", first_timestamp());
- st->print("|LTS %8lf", last_timestamp());
+ st->print("|FTS %10.3lf", first_timestamp());
+ st->print("|LTS %10.3lf", last_timestamp());
if (is_humongous_start()) {
st->print("|H ");
} else if (is_humongous_continuation()) {
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list