package jnt.scimark2;
/**
Provides a stopwatch to measure elapsed time.
<P>
<DL>
<DT><B>Example of use:</B></DT>
<DD>
<p>
<pre>
Stopwatch Q = new Stopwatch;
<p>
Q.start();
//
// code to be timed here ...
//
Q.stop();
System.out.println("elapsed time was: " + Q.read() + " seconds.");
</pre>
@author Roldan Pozo
@version 14 October 1997, revised 1999-04-24
*/
public class Stopwatch
{
private boolean running;
private double last_time;
private double total;
/**
Return system time (in seconds)
*/
public final static double seconds()
{
return (System.currentTimeMillis() * 0.001);
}
/**
Return system time (in seconds)
*/
public void reset()
{
running = false;
last_time = 0.0;
total=0.0;
}
public Stopwatch()
{
reset();
}
/**
Start (and reset) timer
*/
public void start()
{
if (!running)
{
running = true;
total = 0.0;
last_time = seconds();
}
}
/**
Resume timing, after stopping. (Does not wipe out
accumulated times.)
*/
public void resume()
{
if (!running)
{
last_time = seconds();
running = true;
}
}
/**
Stop timer
*/
public double stop()
{
if (running)
{
total += seconds() - last_time;
running = false;
}
return total;
}
/**
Display the elapsed time (in seconds)
*/
public double read()
{
if (running)
{
total += seconds() - last_time;
last_time = seconds();
}
return total;
}
}