工具类安全收集工具使用

使用 StopWatch 优雅打印执行耗时

2021-11-23  本文已影响0人  Restart白蓝

spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录工具

这是以前的写法

System.currentTimeMillis()

现在
1、统计输出总耗时

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());  
    }  
}

2、输出最后一个任务的耗时

public class SpringStopWatchExample2 {  
  
    public static void main (String[] args) throws InterruptedException {  
        StopWatch sw = new StopWatch();  
        sw.start("A");//setting a task name  
        //long task simulation  
        Thread.sleep(1000);  
        sw.stop();  
        System.out.println(sw.getLastTaskTimeMillis());  
    }  
}

3、优雅的格式打出所有任务的耗时以及占比

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

不同的打印结果

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

上一篇下一篇

猜你喜欢

热点阅读