介绍
StopWatch 可以分任务进行打印统计时间,并且给任务进行取名。
使用
package com.my.myshiro.controller;
import lombok.SneakyThrows;
import org.apache.shiro.util.ThreadContext;
import org.springframework.util.StopWatch;
/**
* @Author: 穿金头戴帽
* @Date: 2023/1/10
* @Note:
**/
public class TestT {
@SneakyThrows
public static void main(String[] args) {
StopWatch stopWatch = new StopWatch();
stopWatch.start("烧水");
Thread.sleep(33000);
stopWatch.stop();
stopWatch.start("泡茶");
Thread.sleep(3000);
stopWatch.stop();
//各个任务的执行时间信息 ns(纳秒) %(任务占所有任务的总耗时百分比) Task name(任务名)
System.out.println(stopWatch.prettyPrint());
// 所有任务总耗时 (ms)
System.out.println(stopWatch.getTotalTimeSeconds());
}
}
public class TestA {
public static void main(String[] args) {
t2();
}
public static void t2() {
StopWatch stopWatch = new StopWatch();
stopWatch.start("第一次");
tt();
stopWatch.stop();
StopWatch.TaskInfo lastTaskInfo = stopWatch.getLastTaskInfo();
System.out.println(lastTaskInfo.getTaskName() + lastTaskInfo.getTimeMillis());
stopWatch.start("第二次");
tt();
stopWatch.stop();
StopWatch.TaskInfo lastTaskInfo1 = stopWatch.getLastTaskInfo();
System.out.println(lastTaskInfo1.getTaskName() + lastTaskInfo1.getTimeMillis());
// StopWatch.TaskInfo[] taskInfo = stopWatch.getTaskInfo();
// for (int i = 0; i < taskInfo.length; i++) {
// System.out.println(taskInfo[i].getTaskName() + taskInfo[i].getTimeMillis());
// }
}
public static void t1() {
long start = System.currentTimeMillis();
tt();
long end = System.currentTimeMillis();
System.out.println("第一次:" + (end - start));
long start1 = System.currentTimeMillis();
tt();
long end1 = System.currentTimeMillis();
System.out.println("第二次:" + (end1 - start1));
}
public static void tt() {
System.out.println("烧水");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("泡茶");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("茶泡好了");
}
}