耗时统计
在做性能优化的时候,耗时统计非常有用。
分析出时间主要消耗在哪里,才能够做出相应的优化。
System.currentTimeMillis()
平常我们在做耗时统计时,经常会用 System.currentTimeMillis(),如下:
long start = System.currentTimeMillis();
//其他逻辑
long end = System.currentTimeMillis();
System.out.println("it takes time:" + (end - start));
如果只有一个功能,那这样做还是可以的。但是如果有三四个功能,那反复地用 System.currentTimeMillis(),就会比较麻烦。
可以尝试下 StopWatch。
StopWatch 的依赖
在 apache、guava、spring的包里面,都有 StopWatch。
个人认为spring的 StopWatch比较好用些。依赖如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.4.RELEASE</version>
</dependency>
StopWatch 常用的方法
StopWatch(String id) :构造方法,初始化
start(String taskName) :指定任务名称,开始统计
stop():结束统计
prettyPrint():非常有用的方法。可以显示出各个任务的耗时。
StopWatch 示例代码
import org.springframework.util.StopWatch;
public class StopWatchDemo {
public static void main(String[] args) throws InterruptedException {
stopWatch();
}
public static void stopWatch() throws InterruptedException {
StopWatch stopWatch = new StopWatch("myStopWatch");
stopWatch.start("任务1");
Thread.sleep(2000);
stopWatch.stop();
stopWatch.start("任务2");
Thread.sleep(1000);
stopWatch.stop();
//统计耗时
System.out.println(stopWatch.prettyPrint());
}
}
耗时统计结果如下:
StopWatch 'myStopWatch': running time (millis) = 3007
-----------------------------------------
ms % Task name
-----------------------------------------
02005 067% 任务1
01002 033% 任务2
标签:耗时,--,System,currentTimeMillis,stopWatch,StopWatch,start
From: https://www.cnblogs.com/expiator/p/17045089.html