package common; import java.util.TimerTask; public class MemoryThread extends TimerTask { public final static int TIME_SPAN = 5000; private long maxMemory = -1; public MemoryThread() { Runtime.getRuntime().gc(); } private void trackMaxMemory() { // Get the Java runtime Runtime runtime = Runtime.getRuntime(); // Run the garbage collector //runtime.gc(); // Calculate the used memory long memory = runtime.totalMemory() - runtime.freeMemory(); if (memory > this.maxMemory) { this.maxMemory = memory; } } public void run() { trackMaxMemory(); } public long getMaxMemory() { trackMaxMemory(); return this.maxMemory; } }