/bench/kilim/bench/Stopwatch.java
http://github.com/kilim/kilim · Java · 63 lines · 37 code · 14 blank · 12 comment · 2 complexity · 34380f4ba770ec9d5b1f97a6b8cc9dcc MD5 · raw file
- /* Copyright (c) 2006, Sriram Srinivasan
- *
- * You may distribute this software under the terms of the license
- * specified in the file "License"
- */
- package kilim.bench;
- public class Stopwatch {
- long lastTickMillis = System.currentTimeMillis();
- long lastElapsedMillis = 0;
- int multiplier = 1; // see reportMicros
- String unit = " ms";
- String name = "";
-
-
- public Stopwatch() {tick();}
- public Stopwatch(String nm) {name = nm; tick();}
-
- /**
- * @return the diff in millis from the last tick. Both tick and elapsed times are
- * kept in millis
- */
- public long tick() {
- long l = lastTickMillis;
- lastTickMillis = System.currentTimeMillis();
- lastElapsedMillis = lastTickMillis - l;
- return lastElapsedMillis;
- }
-
- /**
- * Report in micros or millis
- */
- public void reportMicros() {multiplier = 1000; unit = " micros";}
- public void reportMillis() {multiplier = 1; unit = " ms";}
- public long timePerIter(int iters) {
- return iters == 0? 0 : lastElapsedMillis*multiplier/iters;
- }
-
- long itersPerTime(int iters) {
- return lastElapsedMillis == 0 ? iters : iters/(lastElapsedMillis*multiplier);
- }
-
- public String toString() {
- return name + ": elapsed: " + (lastElapsedMillis * multiplier) + " " + unit;
- }
-
- public String toString(int iters) {
- return name + " elapsed: " + (lastElapsedMillis * multiplier) +
- unit +", iters = " + iters +
- ", " + unit + "/iter = " + timePerIter(iters) +
- ", iters/" + unit + " = " + itersPerTime(iters);
- }
-
- public void print() {System.out.println(this);}
-
- public void print(int iters) { System.out.println(this.toString(iters));}
- public void tickPrint() {tick(); print();}
-
- public void tickPrint(int iters) {tick(); print(iters);}
- }