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

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

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

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

     StopWatch sw = new StopWatch();

     sw.start("校验耗时");
Thread.sleep(1000);
sw.stop(); sw.start("组装报文耗时");
Thread.sleep(2000);
sw.stop(); sw.start("请求耗时");
Thread.sleep(1000);
sw.stop(); System.out.println(sw.prettyPrint());
System.out.println(sw.getTotalTimeMillis());

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

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

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

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

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

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

getTaskCount:获取任务总数。

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

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

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

JAVA中用StopWatch计算代码耗时的方法的更多相关文章

  1. 常用的代码之一:用StopWatch计算代码运行花费的时间。

    先引用Diagnostics using System.Diagnostics; 然后: Stopwatch stopWatch = new Stopwatch(); stopWatch.Start( ...

  2. Java虚拟机性能管理神器 - VisualVM(8) 查找JAVA应用程序耗时的方法函数【转】

    Java虚拟机性能管理神器 - VisualVM(8) 查找JAVA应用程序耗时的方法函数[转] 标签: javajvm监控工具性能优化 2015-04-07 16:47 1846人阅读 评论(0)  ...

  3. 折叠代码块 C#中用 #region和#endregion java中用 //region和//endregion

    折叠代码块 C#中用 #region和#endregion   java中用 //region和//endregion

  4. 为什么在 Java 中用 (low+high)>>>1 代替 (low+high)/2 或 (low+high)>>1 来计算平均值呢?好在哪里?

    >>>与>>是位运算符,只对整型有效(不能用于浮点型).当是整型的时候(low+high)>>1可以代替(low+high)/2.>>>是无 ...

  5. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  6. Java编写高质量代码改善程序的151个建议

    第一章  Java开发中通用的方法和准则 建议1:不要在常量和变量中出现易混淆的字母: (i.l.1:o.0等). 建议2:莫让常量蜕变成变量: (代码运行工程中不要改变常量值). 建议3:三元操作符 ...

  7. Java中异常发生时代码执行流程

    异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员) ...

  8. Java 底层机制(JVM/堆/栈/方法区/GC/类加载)

    转载:https://www.jianshu.com/p/ae97b692614e?from=timeline JVM体系结构 JVM是一种解释执行class文件的规范技术.   JVM体系结构 我翻 ...

  9. (转载)JAVA动态编译--字节代码的操纵

    在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了.这种开发模式背后的过程是:开发人员编写的 ...

随机推荐

  1. 错误 Unable to connect to a repository at URL 'svn://ip地址' 和 No repository found in 'svn://ip地址'

    SVN服务器是CentOS6.10 使用TortoiseSVN客户端检出时遇到如下图所示的错误: 是因为没有指定SVN仓库的路径 在SVN服务器执行命令:svnserve -d -r /SVN版本库的 ...

  2. del_deploy.core.prefs.bat

    cd /d "D:\Workspaces\MyEclipse 10" del ".metadata\.plugins\org.eclipse.core.runtime\. ...

  3. WinDbg常用命令系列---!findstack

    简介 !findstack扩展查找所有包含指定的符号或模块的堆栈.此命令搜索线程调用堆栈中的特定符号,并显示匹配的线程. 使用形式 !findstack Symbol[DisplayLevel] !f ...

  4. 同余方程组(EXCRT)(luogu4777)

    #include<cstdio> #include<algorithm> #define ll long long using namespace std; ll k; ll ...

  5. HDU 4828 小明系列故事——捉迷藏

    漂亮妹子点击就送:http://acm.hdu.edu.cn/showproblem.php?pid=4528 Time Limit: 500/200 MS (Java/Others)    Memo ...

  6. December Challenge 2019 Division 1 题解

    传送门 当我打开比赛界面的时候所有题目都已经被一血了-- BINXOR 直接把异或之后二进制最多和最少能有多少个\(1\)算出来,在这个范围内枚举,组合数算一下就行了.注意\(1\)的个数是\(2\) ...

  7. Oracle 的查询组合语句

    select   a.core_txn_srl_no||a.c_dept||a.c_batch||lpad(a.c_opr_no,5,'0')||case a.txn_dr_cr_ind when ' ...

  8. 实践分布式配置中心Apollo

    简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...

  9. 分享一个Python脚本--统计redis key类型数据大小分布

    概述 今天主要介绍怎么统计redis key类型数据大小分布. 原理:使用redis命令: scan.pipline.type 和 debug object 来得到 redis key 信息. 脚本 ...

  10. keepalived haproxy 主备配置

    global_defs { router_id k8s_master} vrrp_script chk_http_port {script "/etc/keepalived/check_ha ...