import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.LinkedHashMap;
import java.util.Map;
public class Swatch {
private static final Logger log =
(Logger) LoggerFactory.getLogger(Swatch.class);
private String msg = null;
private long startTime = 0;
private final Map<String, Long> map = new LinkedHashMap<String, Long>();
public void output() {
for (final String msg : map.keySet()) {
log.info("{} in {} ms", new Object[] { msg, map.get(msg) });
}
}
public void start(final String msg) {
if (startTime != 0) {
throw new IllegalStateException("Already started");
}
startTime = System.nanoTime() / 1000000;
this.msg = msg;
}
public void stop() {
if (startTime == 0) {
throw new IllegalStateException("Not started");
}
final long now = System.nanoTime() / 1000000;
Long n = map.get(msg);
if (n == null) {
n = 0l;
}
n += (now - startTime);
map.put(msg, n);
startTime = 0;
msg = null;
}
}
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.