SpringBoot使用org.springframework.util监控java代码执行耗时时长

发布时间 2023-12-12 11:49:31作者: sowler
public class StopWatchTask {
    
    public static void main(String[] args){
        //创建一个计时器
        StopWatch stopWatch = new StopWatch();
        //开始计时
        stopWatch.start();
        //代码执行 10s
        try { TimeUnit.MILLISECONDS.sleep(1000L*10); } catch (InterruptedException e) { e.printStackTrace(); }
        //停止计时
        stopWatch.stop();
        
        //打印输出
        //上一个任务执行时间 毫秒
        System.out.println(stopWatch.getLastTaskTimeMillis());
        //总耗时
        System.out.println(stopWatch.getTotalTimeMillis());

        //开启下一个计时任务
        stopWatch.start();
        //代码执行 1s
        try { TimeUnit.MILLISECONDS.sleep(1000L); } catch (InterruptedException e) { e.printStackTrace(); }
        //停止计时
        stopWatch.stop();
        
        //打印上一个任务执行时间   输出 1s
        System.out.println(stopWatch.getLastTaskTimeMillis());
        //总耗时 第一次加上第二次  输出 11s
        System.out.println(stopWatch.getTotalTimeMillis());

        //开启计时任务设置任务名称
        stopWatch.start("计时任务名称");
        try { TimeUnit.MILLISECONDS.sleep(1000L* 5); } catch (InterruptedException e) { e.printStackTrace(); }
        stopWatch.stop();
        
        //获取任务详情
        System.out.println(stopWatch.getLastTaskTimeMillis());
        
        // 任务总的耗时  如果你想获取到每个任务详情(包括它的任务名、耗时等等)可使用
        System.out.println(String.format("所有任务总耗时:%s 毫秒", stopWatch.getTotalTimeMillis()));
        System.out.println(String.format("任务总数:%s ", stopWatch.getTaskCount()));
        
        //遍历所有任务
        StopWatch.TaskInfo[] taskInfo = stopWatch.getTaskInfo();
        for (int i = 0; i < taskInfo.length; i++) {
            //任务名称
            System.out.println(taskInfo[i].getTaskName());
            //任务执行时间
            System.out.println(taskInfo[i].getTimeMillis());
        }
    }
}