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);
}
}