Pages

Swatch

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.