JAVA中用StopWatch计算代码耗时的方法

  StopWatch翻译过来的意思就是秒表,其作用也就像我们平时使用的秒一样。spring中就有提供这个工具类(org.springframework.util.StopWatch)。

 

  日常开发中,经常需要看方法各部分的耗时,通常的做法就是通过插桩的方式来统计耗时,如下:

1     long startTime = System.currentTimeMillis();
2     Thread.sleep(1000);
3     long finishTime = System.currentTimeMillis();
4     System.out.println("请求耗时:" + (finishTime - startTime));

  如果有多个就要重复写多个,比较繁琐,这个时候就可以用StopWatch工具类。如下:

 1     StopWatch sw = new StopWatch();
 2 
 3     sw.start("校验耗时");
 4     Thread.sleep(1000);
 5     sw.stop();
 6 
 7     sw.start("组装报文耗时");
 8     Thread.sleep(2000);
 9     sw.stop();
10 
11     sw.start("请求耗时");
12     Thread.sleep(1000);
13     sw.stop();
14 
15     System.out.println(sw.prettyPrint());
16     System.out.println(sw.getTotalTimeMillis());

  即使需要加多个位置,也很方便,用prettyPrint方法,可以带格式自动输出各个任务的情况,如下:

  StopWatch还有一些其他的方法可以使用:

prettyPrint:用自带格式输出所有任务信息。

getTaskInfo:获取所有任务的信息,即各个任务的名称和耗时。(如果想自定义输出一些内容,或者格式,可以从这里获取所有任务的信息)

getTotalTimeMillis:获取任务总耗时(毫秒)。

getTotalTimeSeconds:获取任务总耗时(秒)。

getTaskCount:获取任务总数。

getLastTaskName:获取最后一个任务的名称。

getLastTaskTimeMillis:获取最后一个任务的耗时(毫秒)。

getLastTaskInfo:获取最后一个任务的信息,即任务的名称和耗时。

 

posted @ 2019-07-12 11:12  PC君  阅读(9798)  评论(0编辑  收藏  举报