package org.reldb.dbrowser.ui.monitors; import org.eclipse.swt.widgets.Composite; public class FreeMemoryDisplay extends PercentDisplay { /** Get memory free as a percentage value between 0 and 100. */ public static int getMemoryPercentageFreeClassic() { java.lang.Runtime runtime = java.lang.Runtime.getRuntime(); long maxmemory = runtime.totalMemory(); int memfree = (int)((double)runtime.freeMemory() / (double)maxmemory * 100.0); return memfree; } /** Get memory free as a percentage value between 0 and 100. */ public static int getMemoryPercentageFree() { java.lang.Runtime runtime = java.lang.Runtime.getRuntime(); long maxMemory = runtime.maxMemory(); long allocatedMemory = runtime.totalMemory(); long freeMemory = runtime.freeMemory(); long estimatedFree = freeMemory + (maxMemory - allocatedMemory); int memfree = (int)((double)estimatedFree / (double)maxMemory * 100.0); return memfree; } public FreeMemoryDisplay(Composite parent, int style) { super(parent, style, "RAM", new PercentSource() { @Override public int getPercent() { return getMemoryPercentageFree(); } }); } }