我想知道特定函数在程序持续时间内花了多少时间涉及递归,最好的方法是什么?
谢谢
答案 0 :(得分:12)
最好的方法是运行一些benchmark tests(以测试单个函数)或Profiling(以测试整个应用程序/程序)。 Python附带内置的Profilers。
或者,您只需在程序开头设置开始时间,然后在程序结束时从开始时间减去当前时间,即可返回the very basics。这基本上是非常简单的基准测试。
以下是来自关联问题的an answer的实施:
import time
start = time.time()
do_long_code()
print "it took", time.time() - start, "seconds."
Python的标准库中也包含something for benchmarking。
从页面上的示例给出:
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()
答案 1 :(得分:3)
使用探查器!
python -m cProfile -o prof yourscript.py
runsnake prof
runsnake
是一个查看分析输出的好工具。你当然可以使用其他工具。
有关Profiler的更多信息,请访问:http://docs.python.org/library/profile.html