使用Spring的StopWatch类优雅打印方法执行耗时

在做开发的时需要统计每个方法的执行消耗时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,然而使用使用Spring的StopWatch类就可以优雅打印方法执行耗时间

简单的Demo

import org.springframework.util.StopWatch;  
  
public class SpringStopWatchExample {  
  
    public static void main (String[] args) throws InterruptedException {  
        StopWatch sw = new StopWatch();  
        sw.start();  
        //long task simulation  
        Thread.sleep(1000);  
        sw.stop();  
        System.out.println(sw.getTotalTimeMillis());  
    }  
}

打印同个方法多个代码块的执行消耗时间

复制代码
import org.springframework.util.StopWatch;  
  
public class SpringStopWatchExample2 {  
  
    public static void main (String[] args) throws InterruptedException {  
        StopWatch sw = new StopWatch();  
        sw.start("A");  
        Thread.sleep(1000);  
        sw.stop();  
        sw.start("B");  
        Thread.sleep(200);  
        sw.stop();  
        sw.start("C");  
        Thread.sleep(500);  
        sw.stop();  
        System.out.println(sw.prettyPrint());  
    }  
}

输入结果

StopWatch '': running time (millis) = 1031  
-----------------------------------------  
ms     %     Task name  
-----------------------------------------  
00514  100%   A  
00302  0200%  B  
00215  0500%  C

StopWatch常用方法
getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒的方法
prettyPrint() 优雅的格式打印结果,表格形式
shortSummary() 返回简短的总耗时描述
getTaskCount() 返回统计时间任务的数量
getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称

相关推荐
天天要nx9 分钟前
D64【python 接口自动化学习】- python基础之数据库
数据库·python
落落落sss24 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
我救我自己24 分钟前
UE5运行时创建slate窗口
java·服务器·ue5
精进攻城狮@43 分钟前
Redis(value的数据类型)
数据库·redis
2401_853275731 小时前
ArrayList 源码分析
java·开发语言
爪哇学长1 小时前
SQL 注入详解:原理、危害与防范措施
xml·java·数据库·sql·oracle
MoFe11 小时前
【.net core】【sqlsugar】字符串拼接+内容去重
java·开发语言·.netcore
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
mybatisPlus打印sql配置
数据库·sql
_江南一点雨1 小时前
SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍
java·spring boot·后端
转转技术团队1 小时前
空间换时间-将查询数据性能提升100倍的计数系统实践
java·后端·架构