小编Waq*_*dal的帖子

为什么2*x*x比Python 3.x中的2*(x*x)快,对于整数?

以下Python 3.x整数乘法平均在1.66s和1.77s之间:

import time
start_time = time.time()
num = 0
for x in range(0, 10000000):
    # num += 2 * (x * x)
    num += 2 * x * x
print("--- %s seconds ---" % (time.time() - start_time))
Run Code Online (Sandbox Code Playgroud)

如果我更换2 * x * x2 *(x * x),它需要之间2.042.25.怎么会?

另一方面,它与Java相反:2 * (x * x)Java更快.Java测试链接:为什么2*(i*i)比Java中的2*i*i更快?

我运行了每个版本的程序10次,这里是结果.

   2 * x * x        |   2 * (x * x)
---------------------------------------
1.7717654705047607  | 2.0789272785186768
1.735931396484375   | …
Run Code Online (Sandbox Code Playgroud)

python performance benchmarking python-3.x integer-arithmetic

39
推荐指数
2
解决办法
3079
查看次数