统计输出总耗时

  1. public static void main(String[] args) throws Exception {
  2. StopWatch stopWatch = new StopWatch();
  3. stopWatch.start("任务一");
  4. Thread.sleep(2000);
  5. stopWatch.stop();
  6. stopWatch.start("任务二");
  7. Thread.sleep(1000);
  8. stopWatch.stop();
  9. System.out.println(stopWatch.getTotalTimeNanos()); //纳秒 3006511215
  10. System.out.println(stopWatch.getTotalTimeMillis()); //毫秒 3003
  11. System.out.println(stopWatch.getTotalTimeSeconds()); //秒 3.005637544
  12. }

输出最后一个任务的耗时

  1. public static void main(String[] args) throws Exception {
  2. StopWatch stopWatch = new StopWatch();
  3. stopWatch.start("任务一");
  4. Thread.sleep(2000);
  5. stopWatch.stop();
  6. stopWatch.start("任务er");
  7. Thread.sleep(1000);
  8. stopWatch.stop();
  9. System.out.println(stopWatch.getLastTaskTimeMillis()); //毫秒 1002
  10. System.out.println(stopWatch.getLastTaskTimeNanos()); //纳秒 1008902678
  11. }

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

  1. public static void main(String[] args) throws Exception {
  2. StopWatch stopWatch = new StopWatch();
  3. stopWatch.start("任务一");
  4. Thread.sleep(2000);
  5. stopWatch.stop();
  6. stopWatch.start("任务er");
  7. Thread.sleep(1000);
  8. stopWatch.stop();
  9. System.out.println(stopWatch.prettyPrint());
  10. }
  11. StopWatch '': running time = 3007597244 ns
  12. ---------------------------------------------
  13. ns % Task name
  14. ---------------------------------------------
  15. 2003720282 067% 任务一
  16. 1003876962 033% 任务二

获取任务列表

  1. public static void main(String[] args) throws Exception {
  2. StopWatch stopWatch = new StopWatch();
  3. stopWatch.start("任务一");
  4. Thread.sleep(2000);
  5. stopWatch.stop();
  6. stopWatch.start("任务二");
  7. Thread.sleep(1000);
  8. stopWatch.stop();
  9. StopWatch.TaskInfo[] taskInfo = stopWatch.getTaskInfo();
  10. for (StopWatch.TaskInfo info : taskInfo) {
  11. System.out.println(info.getTaskName());
  12. }
  13. }
  14. 任务一
  15. 任务二

其他方法

  1. public static void main(String[] args) throws Exception {
  2. StopWatch stopWatch = new StopWatch();
  3. stopWatch.start("任务一");
  4. Thread.sleep(2000);
  5. stopWatch.stop();
  6. stopWatch.start("任务er");
  7. Thread.sleep(1000);
  8. stopWatch.stop();
  9. System.out.println(stopWatch.getTaskCount()); //获取任务数量
  10. System.out.println(stopWatch.getLastTaskName()); //获取最后一个任务名称
  11. System.out.println(stopWatch.getLastTaskInfo());//获取最后一个任务详情
  12. }