我正在做一些关于if语句在循环中的速度以及它们对速度的影响的测试。我发现的一点是,if-statement改善了性能。我的代码:while循环与if语句快于while循环
import time
t = time.time
start = t()
x = 0
while x < 10000000:
x += 1
time1 = t()
x = 0
while x < 10000000:
x += 1
if True:
pass
time2 = t()
print(start)
print(time1 - start) # Time for simple while-loop
print(time2 - time1) # Time for while+if
样本输出是:
1355517837.993
1.7850000858306885
1.7209999561309814
这是完全反直觉的。 while-if-loop的工作速度比标准的while循环稍快。几乎每次我运行它都会发生;或许有20分之一需要更长的时间。有谁知道为什么?
如果您从两个定时块中移出x = 0,会发生什么?我敢打赌,你所看到的是解释者必须为第一个块分配'x',而不是第二个块。 –
这里不一样,tho';我有像:$ python t.py 1355519439.65 1.92616391182 2.65010595322';在Python 2.7.3上运行 – Rubens
如果你第一次运行if循环,然后没有它,那么结果是一样的吗?对我来说,第一个总是更快。 – Edu