我想知道在涉及递归的程序期间特定函数花费了多少时间,最好的方法是什么?
谢谢
最好的方法是运行一些基准测试(测试单个功能)或Profiling(测试整个应用程序/程序)。Python 带有内置的分析器。
或者,您可以通过在程序开始时简单地设置开始时间,然后在程序结束时从开始时间中减去当前时间来回到最基础的地方。这基本上是非常简单的基准测试。
这是来自链接问题的答案的实现:
import time
start = time.time()
do_long_code()
print "it took", time.time() - start, "seconds."
Python的标准库中也包含一些用于基准测试的内容。
从页面上给出的示例中:
def test():
"Time me"
L = []
for i in range(100):
L.append(i)
if __name__=='__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.timeit()
使用分析器!
python -m cProfile -o prof yourscript.py
runsnake prof
runsnake
是查看分析输出的好工具。您当然可以使用其他工具。
更多关于探查器的信息:http: //docs.python.org/library/profile.html