zoukankan      html  css  js  c++  java
  • 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:获取最后一个任务的信息,即任务的名称和耗时。

  • 相关阅读:
    123457123457#0#-----com.tym.YuErBaiKeTYM--前拼后广--育儿百科
    123457123456#0#-----com.tym.XueYingYu01--前拼后广--小学英语tym
    123457123456#0#-----com.cym.shuXue02--前拼后广--开心学数学
    Spring事务失效的2种情况
    算法之排序
    JDK、Spring和Mybatis中使用到的设计模式
    MyBatis中#{}和${}的区别详解
    Redis为什么这么快
    java多线程之ScheduleThreadPoolExecutor
    java多线程之ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/pcheng/p/11174947.html
Copyright © 2011-2022 走看看