gatk-3.8/java/src/org/broadinstitute/sting/utils/SimpleTimer.java

57 lines
1.1 KiB
Java

package org.broadinstitute.sting.utils;
import java.io.PrintStream;
/**
* A useful simple system for timing code.
*
* User: depristo
* Date: Dec 10, 2010
* Time: 9:07:44 AM
*/
public class SimpleTimer {
private String name = "";
private long elapsed = 0l;
private long startTime = -1l;
boolean running = false;
public SimpleTimer(String name) {
this.name = name;
}
public String getName() {
return name;
}
public SimpleTimer start() {
elapsed = 0l;
restart();
return this;
}
public SimpleTimer restart() {
running = true;
startTime = currentTime();
return this;
}
public long currentTime() {
return System.currentTimeMillis();
}
public SimpleTimer stop() {
running = false;
elapsed += currentTime() - startTime;
return this;
}
public double getElapsedTime() {
return (running ? (currentTime() - startTime) : elapsed) / 1000.0;
}
public void printElapsedTime(PrintStream out) {
out.printf("SimpleTimer %s: %.2f%n", name, getElapsedTime());
}
}