Stopwatch 解释为计时器,又称秒表、停表,是记录时间的。
使用System.currentTimeMillis()也能统计这段代码的执行时间,那么为什么还会有Stopwatch
官方称不直接使用System#nanoTime是有一下几个原因:
-
时间源可以替代 可以重写Ticker
-
nanoTime的返回值是纳秒,返回的值没有意义,Stopwatch抽象返回值
Stopwatch stopwatch = Stopwatch.createStarted();
long startTime = System.currentTimeMillis();
for (long i = 0; i < 1000000000L; i++) {
// do some thing
}
System.out.println("逻辑代码运行耗时:" + stopwatch.elapsed(TimeUnit.MILLISECONDS));
System.out.println(System.currentTimeMillis() - startTime);
// stopwatch.stop();//暂停
stopwatch.reset();//重置
stopwatch.start();//启动
for (long i = 0; i < 1000000000L; i++) {
// do some thing
}
System.out.println("逻辑代码运行耗时:" + stopwatch.elapsed(TimeUnit.MILLISECONDS));
System.out.println(System.currentTimeMillis() - startTime);
for (long i = 0; i < 1000000000L; i++) {
// do some thing
}
System.out.println("逻辑代码运行耗时:" + stopwatch.elapsed(TimeUnit.MILLISECONDS));
System.out.println(System.currentTimeMillis() - startTime);