Java benchmark 工具 JMH

    为什么需要Benchmark工具 如果想要知道一段代码的性能如何,一种常用的做法可能是这样的: long start = System.currentTimeMillis(); // do something … System.out.println(System.currentTimeMillis() - start); 这样做,存在几个问题: 结果不够精确 首先,System.currentTimeMillis() 的注释里明确表示了,根据操作系统的不同,会存在数十毫秒的误差。虽然这个问题比较容易解决,但是造成测试结果不精确的主要原因并不是时间函数的误差,而是JVM和JIT在运行时