com.google.common.base ** Stopwatch**
用来计算经过的时间(精确到纳秒)。 这个类比调用System.nanoTime()优势在于:
public boolean isRunning()
如果start方法被调用。stop方法还没有调用。返回真。
@CanIgnoreReturnValue
public Stopwatch start()
启动stopwatch。
@CanIgnoreReturnValue
public Stopwatch stop()
停止stopwatch,读取的话将会返回经历过的时间。
@CanIgnoreReturnValue
public Stopwatch reset()
把stopwatch经过的时间设置为零,状态设置为停止。
public long elapsed(TimeUnit desiredUnit)
用特定的格式返回这个stopwatch经过的时间。
@Override
public String toString()
返回字符串形式的elapsed time。
public class StopWatchTest {
public static void main(String[] args) throws Exception{
// 创建stopwatch并开始计时
Stopwatch stopwatch = Stopwatch.createStarted();
Thread.sleep(1980);
// 以秒打印从计时开始至现在的所用时间,向下取整
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 1
// 停止计时
stopwatch.stop();
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 1
// 再次计时
stopwatch.start();
Thread.sleep(100);
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 2
// 重置并开始
stopwatch.reset().start();
Thread.sleep(1030);
// 检查是否运行
System.out.println(stopwatch.isRunning()); // true
long millis = stopwatch.elapsed(TimeUnit.MILLISECONDS); // 1031
System.out.println(millis);
// 打印
System.out.println(stopwatch.toString()); // 1.03 s
}
}