package aliview;
import org.apache.log4j.Logger;
public class MemoryUtils {
private static final Logger logger = Logger.getLogger(MemoryUtils.class);
static final int MB = 1024*1024;
public static long getMaxMem() {
Runtime runtime = Runtime.getRuntime();
return runtime.maxMemory();
}
public static long getMaxMemMB(){
return getMaxMem() / MB;
}
public static long getTotalMemMB(){
Runtime runtime = Runtime.getRuntime();
return runtime.totalMemory() / MB;
}
public static long getFreeMemMB(){
Runtime runtime = Runtime.getRuntime();
return runtime.freeMemory() / MB;
}
public static long getUsedMemMB(){
Runtime runtime = Runtime.getRuntime();
return (runtime.totalMemory() - runtime.freeMemory()) /MB;
}
public static void logMem(){
logger.info("getMaxMemMB()" + getMaxMemMB());
logger.info("getTotalMemMB()" + getTotalMemMB());
logger.info("getFreeMemMB()" + getFreeMemMB());
logger.info("getUsedMemMB()" + getUsedMemMB());
}
public static double getPresumableFreeMemoryMB(){
double presumableFreeMemory= Runtime.getRuntime().maxMemory() - getAllocatedMemory();
return presumableFreeMemory / MB;
}
public static double getAllocatedMemory(){
double allocatedMemory = (Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
return allocatedMemory;
}
}