2011-06-02
today's wtf
long min = Integer.MAX_VALUE; long max = Integer.MIN_VALUE;
(discovered in my own code)
and when we do
min = Math.min(min, newValue)
where newValue = System.nanoTime() - startedNano
, that's where a fuckup is happening.We are out of the 32bit range.
Entry tags:
I love Java too
public class TimeStats extends Stats { private static final double MS = 0.000001; private long startedNano; public void start() { startedNano = System.nanoTime(); } public void finish() { add(System.nanoTime() - startedNano); } public String millis(double nano) { return MS * nano + "ms"; } public String toString() { return "min: " + millis(min) + ", max:" + millis(max) + ", avg:" + millis(average()); } }