badrebelabbess
6/14/2016 - 10:44 AM

JVM

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