x*x vs Math.pow(x,2) java 性能

2022-09-04 23:49:14

我已经做了一些关于Java中是否更快的测试。我本来以为简单会更快一些,但是,事实证明它的速度也差不多。有人可以启发我吗,这怎么可能,拜托?x*xMath.pow(x, 2)x*x


答案 1

这怎么可能,请

因为是 JVM 内部的,也就是说,JIT 编译器内联调用。此外,当它看到指数是一个常数时,它会将调用替换为 正好。Math.pow2x*x

来自热点来源的证明


答案 2

的内部实现被委托给本机函数,因此对于良好的性能可能是合理的。在任何情况下,要获得有效的测试结果,您必须测试循环中的时间,以使执行时间切合实际。Math.pow()


推荐