Here you can find the source of getFreeMemory(boolean preRunGarbageCollector)
public static long getFreeMemory(boolean preRunGarbageCollector)
//package com.java2s; //License from project: Open Source License public class Main { public static long getFreeMemory(boolean preRunGarbageCollector) { Runtime rt = getRuntimeAndRunGC(preRunGarbageCollector); return bytesToMegabytes(rt.freeMemory()); }/*ww w . j a v a 2s .co m*/ private static Runtime getRuntimeAndRunGC(boolean preRunGarbageCollector) { Runtime rt = Runtime.getRuntime(); if (preRunGarbageCollector) { //long startTime = System.currentTimeMillis(); //DEBUG rt.gc(); //System.out.println("GC takes "+(System.currentTimeMillis()-startTime)+" ms."); //DEBUG } return rt; } private static long bytesToMegabytes(long bytes) { long MEGABYTE = 1024L * 1024L; return bytes / MEGABYTE; } }