背景介绍

当我们在纠结哪种写法性能更好时,不如找一个靠谱的工具来协助测量一下真实耗时
在这里介绍一下 Spring 框架内 util 包下自带的 StopWatch 工具类:

  • 所在包:org.springframework.util.StopWatch
  • 启动:start()
  • 停止:stop()
  • 总耗时(毫秒):getTotalTimeMillis()

注意:对于一个 StopWatch 对象,stop 后再 start 时间会继续计时,而非重新计时

代码样例

  1. public static void main(String[] args) {
  2. int[] array = new int[]{1, 2, 3, 4, 5};
  3. StopWatch sw1 = new StopWatch();
  4. sw1.start();
  5. for (int i = 0; i < 1000000; i++) {
  6. Arrays.stream(array).sum();
  7. }
  8. sw1.stop();
  9. System.out.println("Arrays.stream :" + sw1.getTotalTimeMillis());
  10. StopWatch sw2 = new StopWatch();
  11. sw2.start();
  12. for (int i = 0; i < 1000000; i++) {
  13. IntStream.of(array).sum();
  14. }
  15. sw2.stop();
  16. System.out.println("IntStream :" + sw2.getTotalTimeMillis());
  17. }