While-loop with if-statement faster than while-loop

if-statement, performance, python, python-3.x, while-loop

Solution

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

Problem

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?

Original source