Timing Execution Speed of Python Code
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Python: Time a code segment for testing performance (with timeit)
在C++中,可以很容易地对代码块进行计时,见下面的代码。有没有办法做这条Python?(轻而易举)谢谢!
1 2 3 4 5 6 7 | time_t startTime = clock(); // Do stuff time_t endTime = clock(); cout <<"Difference in time(milliseconds) :" << endTime - startTime << endl; |
尝试使用标准库中提供的配置文件。
下面是一个如何使用命令行中的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ python -m cProfile euler048.py 1007 function calls in 0.061 CPU seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.061 0.061 <string>:1(<module>) 1000 0.051 0.000 0.051 0.000 euler048.py:2(<lambda>) 1 0.005 0.005 0.061 0.061 euler048.py:2(<module>) 1 0.000 0.000 0.061 0.061 {execfile} 1 0.002 0.002 0.053 0.053 {map} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler objects} 1 0.000 0.000 0.000 0.000 {range} 1 0.003 0.003 0.003 0.003 {sum} |
代码逐字翻译
1 2 3 4 5 | import datetime start = datetime.datetime.now() // do stuff finish = datetime.datetime.now() print finish-start |
您可能希望签出TimeIt模块,它非常方便为代码的小片段计时。
典型示例:
1 2 3 4 5 6 7 | from timeit import Timer def foo(): # some code here t1 = Timer("""foo()""","""from __main__ import foo""") print t1.timeit(1000) # runs foo() 1000 times and returns the time taken |
我将把您想要计时的部分分解成一个函数,并在它周围放置一个计时装饰器,它会计时代码。
这节省了代码重复,并且增加了一个好处,即您可以使用计时统计信息存储/记录函数名和参数。