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

  • 相关阅读:
    ChinaUnionPay、Visa和MasterCard信用卡号验证
    使用Aspose.Cells 过程中用过的知识(转)
    在网页中回车默认按钮
    求素数算法
    通过jQuery的attr修改onclick(转)
    子页面js代码改变父页面iframe的大小(转)
    考虑线程安全但效率不高的单例C++代码
    Linux信号量摧毁/销毁
    WCF、WPF、Silverlight和区别(转)
    不考虑线程安全的初级单例C++代码
  • 原文地址:https://www.cnblogs.com/pcheng/p/11174947.html
Copyright © 2020-2023  润新知