关于花费时间的Python问题

时间:2010-06-29 21:29:09

标签: python timedelta

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

谢谢

2 个答案:

答案 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