<p>在CPython 3中,循环本身的速度似乎是后者的两倍:</p>
<p><a href="https://ideone.com/bI6jzD" rel="nofollow noreferrer">https://ideone.com/bI6jzD</a></p>
<pre class="lang-php prettyprint-override"><code><?php
function test($x)
{
$t1 = microtime(true);
$a = 0;
for($i = 0; $i < $x; ++$i)
{
//1.40s Reassign and use $a.
//$a += 1;
//1.15s Use and increment $a.
//$a++;
//0.88s Increment and use $a.
//++$a;
//0.69s Do nothing.
}
$t2 = microtime(true);
echo "Time for $x was " . ($t2 - $t1) . "\n";
return $a;
}
echo test(1e8);
</code></pre>
<p><a href="https://ideone.com/l35EBc" rel="nofollow noreferrer">https://ideone.com/l35EBc</a></p>
<pre class="lang-py prettyprint-override"><code>import time
def test(x):
t1 = time.clock()
#>5s
#from functools import reduce
#a = reduce(lambda a, i: a + i, (1 for i in range(x)), 0)
a = 0
for i in range(x):
#4.38s
#a += 1
#1.89s
pass
t2 = time.clock()
print("Time for {} was {}".format(x, t2 - t1))
return x
print(test(int(1e8)))
</code></pre>
<p>然而,这只是Python的标准实现,它更关心易懂而不是快速。<a href="https://pypy.org/download.html#default-with-a-jit-compiler" rel="nofollow noreferrer">PyPy3.5 v6.0.0</a>例如,在我的笔记本电脑上运行0.06秒而不是1.70秒的空循环。</p>