JVM
public class JvmMetrics {
public String getHeapMetrics() {
int mb = 1024 * 1024;
// get Runtime instance
Runtime instance = Runtime.getRuntime();
System.out.println("\n***** Heap utilization statistics [MB] *****");
// available memory
String totalMemory = ("Total Memory: " + instance.totalMemory() / mb);
// free memory
String freeMemory = ("Free Memory: " + instance.freeMemory() / mb);
// used memory
String usedMemory = ("Used Memory: " + (instance.totalMemory() - instance.freeMemory()) / mb);
// Maximum available memory
String maxMemory = ("Max Memory: " + instance.maxMemory() / mb);
return totalMemory + "\n" + freeMemory + "\n" + usedMemory + "\n" + maxMemory + "\n";
}
public String getTimeMetrics() {
System.out.println("\n***** Time statistics [ms] *****");
long startTime = System.nanoTime();
Runtime.getRuntime();
long endTime = System.nanoTime();
long duration = (endTime - startTime);
String time = ("Execution time: ") + duration;
return time;
}
}