擅长:python、mysql、java
<p>您的测量方法具有误导性:</p>
<p>单个函数的执行并不能说明什么:分页、编译等的成本会对结果产生重大影响。当执行函数的次数较多时,这种一次性效果的影响可以减小</p>
<p>以以下方式包装对不同<code>fac</code>函数的调用时:</p>
<pre><code>t0 = time.time()
for i in range(10000):
fac(997)
t1 = time.time()
print(t1-t0)
</code></pre>
<p>然后差异在3%的范围内-至少在我的系统上。基于这些微小差异的设计更改是不可取的-这些差异很容易是由于不在代码中的原因造成的(跨越缓存页边界等)</p>
<p>结论:</p>
<ul>
<li>通常最好是可读性</li>
<li>在性能重要的地方,进行相应的测量和优化是可以的。然而,正如您的示例所示,获得可靠且有意义的测量数据并非易事</李>
<li>不同解决方案之间的性能差异越小,您就越需要了解差异的真正原因并排除环境的影响</李>
</ul>