Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package net.sf.kerner.utils.monitor.memory;
 
 
 public class SimpleMemoryMonitor implements MemoryMonitor {
 
 	private long max = -1;
 
 	private long average = 0;
	private final LongUnit unit;
	private final long interval;
	private final Object lock = new Object();
	private Thread t = new Thread() {
		public void run() {
			while (!.isInterrupted()) {
				synchronized () {
					final long current = getCurrentUsage();
					if ( < current)
						 = current;
					 = ( + current) / 2;
				}
				try {
catch (InterruptedException e) {
					break;
				}
			}
		};
	};
	public SimpleMemoryMonitor(LongUnit unitlong interval) {
		super();
		this. = unit;
		this. = interval;
	}
	public SimpleMemoryMonitor(long interval) {
		this(interval);
	}
	public SimpleMemoryMonitor() {
		this(, 2000);
	}
	public long getCurrentUsage() {
		return getCurrentUsage(this.);
	}
	public long getCurrentUsage(LongUnit unit) {
		final long result = unit.convert(Runtime.getRuntime().totalMemory(), .);
		// System.out.println("convert from " +
		// Runtime.getRuntime().totalMemory() + " to " + result);
		return result;
	}
	public synchronized long getMaxUsage() {
		return getMaxUsage(this.);
	}
	public synchronized long getMaxUsage(LongUnit unit) {
		return this..convert(unit);
	}
	public synchronized long getAverageUsage() {
		return getAverageUsage(this.);
	}
	public synchronized long getAverageUsage(LongUnit unit) {
		return this..convert(unit);
	}
	public void start() {
	}
	public synchronized long stop() {
		return getCurrentUsage();
	}
	public LongUnit getUnit() {
		return this.;
	}
New to GrepCode? Check out our FAQ X