package demo.Test; import org.springframework.util.StopWatch; public class StopWatchTest { // private final String id; StopWatch的id,用于区分不同秒表 // // private boolean keepTaskList = true; 任务列表是否保存,默认true // // private final List<TaskInfo> taskList = new ArrayList<>(1); 任务列表 // // private long startTimeNanos; 任务开始时间 // // @Nullable // private String currentTaskName; 当前任务名字 // // @Nullable // private TaskInfo lastTaskInfo; 上次任务,TaskInfo有2个属性,任务名字、任务执行耗时 // // private int taskCount; 任务总数 // // private long totalTimeNanos; 所有任务总耗时 public static void main(String[] args) throws Exception{ // 相比于这种方式记录耗时,StopWatch更加方便,能直观显示耗时百分比 // long start = System.currentTimeMillis(); // Thread.sleep(1000); // long end = System.currentTimeMillis(); // long cost = end - start; StopWatch stopWatch = new StopWatch("MyStopWatch"); stopWatch.start("task_1"); Thread.sleep(1000); stopWatch.stop(); stopWatch.start("task_2"); Thread.sleep(2000); stopWatch.stop(); System.out.println(stopWatch.prettyPrint()); } }
输出:
StopWatch 'MyStopWatch': running time = 3000565100 ns
---------------------------------------------
ns % Task name
---------------------------------------------
1000106300 033% task_1
2000458800 067% task_2