我们在Java程序开发过程中,当某个操作或方法对性能要求较高或者执行时间要求较短,经常会需要检测程序的运行时间,一般常用的方法就是在程序运行前后运行后记录当时的时间戳,然后做减法,虽然可以比较麻烦,其实我们可以借助Spring框架中自带的StopWatch工具类来实现,那么StopWatch工具类该怎么用呢?
我们直接看案例代码,使用非常简单:
// 定义一个计数器 StopWatch stopWatch = new StopWatch("统一一组任务耗时"); // 统计任务一耗时 stopWatch.start("任务一"); TimeUnit.SECONDS.sleep(1); stopWatch.stop(); // 统计任务二耗时 stopWatch.start("任务二"); TimeUnit.SECONDS.sleep(2); stopWatch.stop(); // 打印出耗时 String result = stopWatch.prettyPrint(); System.err.println(result);
打印效果如下:
StopWatch ‘统一一组任务耗时’: running time (millis) = 3000
—————————————–
ms % Task name
—————————————–
01000 033% 任务一
02000 067% 任务二
代码想必大家一看就懂,就是一个StopWatch
类,封装在Util包中,在执行前调用start
方法,记录开始时间,执行结束后调用stop
方法,记录结束时间,也可以通过getTotalTimeSeconds
获取执行的秒数,其实底层还是用了System.nanoTime()
这个方法,但是封装成类就显得更直观点,也更简单点,而且更方便以后的拓展。