How to get Free, Used and Total Memory in Java ?

DeeKay June 20, 2017 at 2:02 am · How To, JAVA API

As you know that Java does the automatic garbage collection which you need not worry about. However sometime you want to know how large the java heap space is and how much of it is left. Information about Free, Used and Total memory in java can be used for checking your code efficiency.

To obtain these values, use the java.lang.Runtime.totalMemory( ) and java.lang.Runtime.freeMemory( ) methods.

The java.lang.Runtime.totalMemory() method returns the total amount of memory in the Java virtual machine. The value returned by this method may vary over time, depending on the host environment. Note that the amount of memory required to hold an object of any given type may be implementation-dependent.

Below code shows how to get Free, Used and Total Memory in Java –


/****************************************************************************************
 * Created on Apr 7, 2015 Copyright(c) https://kodehelp.com All Rights Reserved.
 ****************************************************************************************/
package com.kodehelp.java.lang.util;

/**
 * This java program shows you how to get Free, Used and Total Java Memory
 * 
 * @author https://kodehelp.com
 */
public class MemoryStats {
    
    public static void main(String[] args){
        
        int mb = 1024 * 1024; 
 
		// get Runtime instance
		Runtime instance = Runtime.getRuntime();
 
		System.out.println("***** Heap utilization statistics [MB] *****\n");
 
		// available memory
		System.out.println("Total Memory: " + instance.totalMemory() / mb);
 
		// free memory
		System.out.println("Free Memory: " + instance.freeMemory() / mb);
 
		// used memory
		System.out.println("Used Memory: "	+ (instance.totalMemory() - instance.freeMemory()) / mb);
 
		// Maximum available memory
		System.out.println("Max Memory: " + instance.maxMemory() / mb);
    }
}