package org.limewire.util; import java.util.concurrent.TimeUnit; import org.apache.commons.logging.Log; public class Stopwatch { private final Log log; private long start = System.nanoTime(); public Stopwatch(final Log log) { this.log = log; } /** * Resets and returns elapsed time in milliseconds. */ public long reset() { if(log.isTraceEnabled()) { long now = System.nanoTime(); long elapsed = now - start; start = now; return TimeUnit.NANOSECONDS.toMillis(elapsed); } else { return -1; } } /** * Resets and logs elapsed time in milliseconds. */ public void resetAndLog(String label) { if(log.isTraceEnabled()) log.trace(label + ": " + reset() + "ms"); } }