package edu.stanford.nlp.optimization;
import edu.stanford.nlp.util.logging.Redwood;
import edu.stanford.nlp.util.MemoryMonitor;
/**
* Evaluate current memory usage
*
* @author Angel Chang
*/
public class MemoryEvaluator implements Evaluator {
/** A logger for this class */
private static Redwood.RedwoodChannels log = Redwood.channels(MemoryEvaluator.class);
private MemoryMonitor memMonitor;
public MemoryEvaluator()
{
memMonitor = new MemoryMonitor();
}
public String toString()
{
return "Memory Usage";
}
public double evaluate(double[] x) {
StringBuilder sb = new StringBuilder("Memory Usage: ");
sb.append(" used(KB):").append(memMonitor.getUsedMemory(false));
sb.append(" maxAvailable(KB):").append(memMonitor.getMaxAvailableMemory(false));
sb.append(" max(KB):").append(memMonitor.getMaxMemory());
String memString = sb.toString();
log.info(memString);
return 0;
}
}