java 中使用StopWatch来计算时间差
以前在进行时间耗时时我们通常的做法是先给出计算前后两个的时间值,然后通过详见来计算耗时时长。
eg:
long start = System.currentTimeMillis(); ......业务处理 System.out.println("耗时:" + (System.currentTimeMillis() - start) + "ms");
我们可以使用已有的工具类中的秒表来替代上述的使用方式,现有的秒表工具类有org.springframework.util.StopWatch、org.apache.commons.lang.time.StopWatch,这里以Spring的StopWatch类为例:
public static void main(String[] args) throws InterruptedException{ StopWatch stopWatch = new StopWatch("任务耗时秒表工具"); stopWatch.start("task1"); Thread.sleep(1000); stopWatch.stop(); System.out.println(stopWatch.getTotalTimeMillis()); stopWatch.start("task2"); Thread.sleep(3000); stopWatch.stop(); //所有任务耗时时间 System.out.println(stopWatch.getTotalTimeMillis()); System.out.println(stopWatch.prettyPrint()); StopWatch stopWatch2 = new StopWatch("任务耗时秒表工具2"); stopWatch2.start("task3"); Thread.sleep(3000); stopWatch2.stop(); //所有任务耗时时间 System.out.println(stopWatch2.getTotalTimeMillis()); System.out.println(stopWatch2.prettyPrint()); }