之前的我们写代码的时候,如果想知道一个方法的执行耗时时长,代码的方式如下:
Long startTime = System.currentTimeMillis();
// 方法体
Long endTime = System.currentTimeMillis();
Long runTime = endTime - startTime;
上面的代码是不是很简单,但是这种写法看上去不美观,下面我们来研究下一个spring强大的工具类:stopWatch.
1 什么是stopWatch
stopWatch 是spring工具包org.springframework.util下的一个工具类,他主要就是计算同步单线程执行时间。我们先看看例子:
public void TestStopWatch() throws InterruptedException {
StopWatch stopWatch = new StopWatch("snail");
stopWatch.start("snail_task1");
Thread.sleep(1000);
stopWatch.stop();
stopWatch.start("snail_task2");
Thread.sleep(2000);
stopWatch.stop();
System.out.println("stopWatch.prettyPrint()-------");
System.out.println(stopWatch.prettyPrint());
}
运行结果:
start开始记录,stop结束记录,然后通过prettyPrint方法打印出来,可以直观显示每段代码的执行时间以及百分比,比之间用系统时间来比瞬间高大上了。
这个工具类还有其他两个方法,计算这个stopWatch实例的所有任务的总的执行时间shortSummary,getTotalTimeMillis,如下图: