以下是 Python 3.x 的整数乘法,平均需要花费 1.66 秒到 1.77 秒:
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))
如果我把 2 * x * x
替换成 2 *(x * x)
,那么它需要介于 2.04
和 2.25
之间的时间。为什么呢?
另一方面,在Java中则相反:2 * (x * x)
在Java中速度更快。Java测试链接:为什么在Java中,2 * (i * i) 比 2 * i * i 快?
我分别运行了每个程序版本10次,以下是结果。
2 * x * x | 2 * (x * x)
---------------------------------------
1.7717654705047607 | 2.0789272785186768
1.735931396484375 | 2.1166207790374756
1.7093875408172607 | 2.024367570877075
1.7004504203796387 | 2.047525405883789
1.6676218509674072 | 2.254328966140747
1.699510097503662 | 2.0949244499206543
1.6889283657073975 | 2.0841963291168213
1.7243537902832031 | 2.1290600299835205
1.712965488433838 | 2.1942825317382812
1.7622807025909424 | 2.1200053691864014
timeit
模块可以获得更好的统计数据。 - user84080802 * pow(x,2)
和2 * x**2
。另外,请使用timeit
重新计时,对于短进程来说,它比time.time()
更准确。 - smci