package edu.mbl.jif.utils.diag.mem;
public class MemoryWatcher extends Thread {
public MemoryWatcher() {
start();
}
public synchronized void run() {
while (true) {
// if (Runtime.getRuntime().freeMemory() < 1000000) {
// DialogBoxes.boxError("Running Low on Memory",
// "Free Memory: " +
// String.valueOf(Runtime.getRuntime().freeMemory() / 1000) + "K / " +
// String.valueOf(Runtime.getRuntime().totalMemory() / 1000) + "K" +
// "/n Close some windows or re-start PSj.");
// }
long free = Runtime.getRuntime().freeMemory() / 1000;
long alloc = Runtime.getRuntime().totalMemory() / 1000;
long used = alloc - free;
System.out.println(" MemKB Free/Alloc/Used: " +
String.valueOf( free ) + " / " +
String.valueOf( alloc ) + " / " +
String.valueOf( used )
);
try {
sleep(4000);
} catch (InterruptedException e) {
System.err.println("Interrupted");
}
}
}
public static void showMem(String msg) {
long free = Runtime.getRuntime().freeMemory() / 1000;
long alloc = Runtime.getRuntime().totalMemory() / 1000;
long used = alloc - free;
System.out.println(msg + " MemKB Free/Alloc/Used: " +
String.valueOf(free) + " / " +
String.valueOf(alloc) + " / " +
String.valueOf(used)
);
}
}