stopWatch任务秒表

简介

有时我们在开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后者这样如果执行大量的测试的话,会很麻烦,如果对执行的时间做进一步控制,则需要在程序中很多地方修改,目前spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录工具

  1. StopWatch stopWatch = new StopWatch();
  2. stopWatch.start();
  3. // 可以给 任务秒表起名字
  4. // stopWatch.start("你好");
  5. TimeUnit.SECONDS.sleep(2);
  6. stopWatch.stop();
  7. // 输出毫秒
  8. System.out.println(stopWatch.getTotalTimeMillis());
  9. // 输出秒
  10. System.out.println(stopWatch.getTotalTimeSeconds());
  1. // 多次统计
  2. StopWatch s = new StopWatch();
  3. s.start("A");
  4. TimeUnit.SECONDS.sleep(1);
  5. s.stop();
  6. s.start("B");
  7. TimeUnit.SECONDS.sleep(2);
  8. s.stop();
  9. s.start("C");
  10. TimeUnit.SECONDS.sleep(3);
  11. s.stop();
  12. // 优雅的格式打印结果,表格形式
  13. System.out.println(s.prettyPrint());
  14. // 获取最后一次执行毫秒
  15. System.out.println(s.getLastTaskTimeMillis());
  16. // shortSummary() 返回简短的总耗时描述
  17. System.out.println(s.shortSummary());
  18. // getTaskCount() 返回统计时间任务的数量
  19. System.out.println(s.getTaskCount());
  20. // getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称
  21. System.out.println(s.getLastTaskInfo().getTaskName());