8

我想知道在涉及递归的程序期间特定函数花费了多少时间,最好的方法是什么?

谢谢

4

2 回答 2

15

最好的方法是运行一些基准测试(测试单个功能)或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()
于 2010-06-29T21:29:59.790 回答
4

使用分析器!

python -m cProfile -o prof yourscript.py
runsnake prof

runsnake是查看分析输出的好工具。您当然可以使用其他工具。

更多关于探查器的信息:http: //docs.python.org/library/profile.html

于 2010-06-29T22:05:11.137 回答