Measure.java
package eu.javaexperience.measurement;
public class Measure
{
private static class MutaLong
{
public long num = System.currentTimeMillis();
}
private static ThreadLocal<MutaLong> num = new ThreadLocal<MutaLong>()
{
@Override
protected MutaLong initialValue()
{
return new MutaLong();
}
};
private static ThreadLocal<MutaLong> nano = new ThreadLocal<MutaLong>()
{
@Override
protected MutaLong initialValue()
{
return new MutaLong();
}
};
public static void startNanoCheckpoint()
{
nano.get().num = System.nanoTime();
}
public static String nanoCheckpoint(String text)
{
long tnow = System.nanoTime();
long tprew = nano.get().num;
nano.get().num = tnow;
return text+" "+((System.nanoTime()-tprew)/1000000.0)+" ms";
}
public static void startCheckpoint()
{
num.get().num = System.currentTimeMillis();
}
public static String checkpoint(String text)
{
long tnow = System.currentTimeMillis();
long tprew = num.get().num;
num.get().num = tnow;
return text+" "+(System.currentTimeMillis()-tprew)+" ms";
}
}