package org.gridkit.jvmtool.gcflow; public class FormatHelper { public static String toMemoryUnits(double value) { if (value == 0) { return "0"; } if (value < (10l << 10)) { String val = String.format("%.2f", value).trim(); if (val.endsWith(".00")) { val = val.substring(0, val.length() - 3); } else if (val.indexOf('.') > 0 && val.endsWith("0")) { val = val.substring(0, val.length() - 1); } return val; } else if (value < (1l << 20)) { return String.format("%5.4gKi", value / (1l << 10)).trim(); } else if (value < (1l << 30)) { return String.format("%5.4gMi", value / (1l << 20)).trim(); } else if (value < (1l << 40)) { return String.format("%5.4gGi", value / (1l << 30)).trim(); } else { return String.format("%dGi", (long)(value / (1l << 30))).trim(); } } public static String toSeconds(double value) { return String.format("%6.3fB", value); } }