private static void addMemoryStatistics(StringBuilder sb) { long free = Runtime.getRuntime().freeMemory(); long total = Runtime.getRuntime().totalMemory(); long max = Runtime.getRuntime().maxMemory(); long used = total - free; long totalFree = max - used; double usedOfMax = 100.0 * ((double) used / (double) max); sb.append(NEW_LINE).append("free = ").append(humanReadableByteCount(free, true)).append(" (").append(free).append(')') .append(NEW_LINE).append("total free = ").append(humanReadableByteCount(totalFree, true)) .append(" (").append(totalFree).append(')') .append(NEW_LINE).append("used = ").append(humanReadableByteCount(used, true)) .append(" (").append(used).append(')') .append(NEW_LINE).append("max = ").append(humanReadableByteCount(max, true)).append(" (").append(max).append(')') .append(NEW_LINE).append(format("usedOfMax = %.2f%%", usedOfMax)); }
private void logHeapUsage(String header) { long free = Runtime.getRuntime().freeMemory(); long total = Runtime.getRuntime().totalMemory(); long used = total - free; long max = Runtime.getRuntime().maxMemory(); double usedOfMax = 100.0 * ((double) used / (double) max); logger.info(name + ' ' + header); logger.info(name + " map size: " + map.size()); logger.info(name + " free: " + humanReadableByteCount(free, true) + " = " + free); logger.info(name + " used: " + humanReadableByteCount(used, true) + " = " + used); logger.info(name + " max: " + humanReadableByteCount(max, true) + " = " + max); logger.info(name + " usedOfMax: " + usedOfMax + '%'); }