31public final class Stopwatch {
33 private long cachedTime;
36 cachedTime = System.nanoTime();
39 public static Stopwatch start() {
40 return new Stopwatch();
44 public String toString() {
45 return String.format(
"STOPWATCH[elapsed=%d]", elapsedTime());
48 public Stopwatch reset() {
49 cachedTime = System.nanoTime();
53 public Stopwatch reset(
int delay, TimeUnit unit) {
54 cachedTime = System.nanoTime() + TimeUnit.NANOSECONDS.convert(delay, unit);
58 public Stopwatch reset(
long millis) {
59 cachedTime = System.nanoTime() + TimeUnit.NANOSECONDS.convert(millis, TimeUnit.MILLISECONDS);
63 public long elapsedTime(TimeUnit unit) {
64 return unit.convert(System.nanoTime() - cachedTime, TimeUnit.NANOSECONDS);
67 public boolean finished() {
68 return cachedTime - System.nanoTime() <= 0;
71 public long elapsedTime() {
72 return elapsedTime(TimeUnit.MILLISECONDS);
75 public boolean elapsed(
long time, TimeUnit unit) {
76 return elapsedTime(unit) >= time;
79 public boolean elapsed(
long time) {
80 return elapsed(time, TimeUnit.MILLISECONDS);
83 public long getCachedTime() {
87 public void setCachedTime(
long cachedTime) {
88 this.cachedTime = cachedTime;