擅长:python、mysql、java
<p>如果<code>X</code>非常大,则打印<code>i</code>相当多,这会严重影响性能。对于不太具体的答案,请继续阅读。在</p>
<p>为了找出流程中的瓶颈在哪里,我建议使用一个时间装饰器,类似于</p>
<pre><code>from functools import wraps
import time
def time_this(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
finish = time.time()
elapsed = (finish - start) * 1000
print '{0}: {1} ms'.format(func.__name__, elapsed)
return result
return wrapper
</code></pre>
<p>我曾经在某个地方发现过这个,并一直用它来找出我的代码慢的地方。您可以将算法分解为一系列单独的函数,然后用这个修饰符装饰函数,以查看每个函数调用所需的时间。然后,就需要摆弄哪些语句在哪些函数中,看哪些语句可以改进修饰函数的运行时间。您主要在寻找两种情况:1)执行时间较长的语句,或2)执行时间不一定很长,但执行次数太多的语句,性能的微小改进将对整体性能产生很大影响。在</p>
<p>祝你好运!在</p>