如何在Python中计算程序运行时间?

164

如何在Python中计算程序运行时间?


这个回答是个好主意(简短而迅速): https://dev59.com/oHI_5IYBdhLWcg3wBuX3#1557584 - Max
5个回答

348

快速替代方案

import timeit

start = timeit.default_timer()

#Your statements here

stop = timeit.default_timer()

print('Time: ', stop - start)  

4
@hajder 给出的时间是以秒为单位的,对吗? - diffracteD
1
@diffracteD 是的,UNIX EPOCH。http://docs.python.org/2/library/timeit.html#timeit.default_timer 和 http://www.epochconverter.com/ - H.Rabiee
5
default_timer()函数测量的是墙上时钟时间,因此任何其他程序都会干扰测量。 - karzler007

68

我不知道这是否是更快的替代方案,但我有另一个解决方案 -

from datetime import datetime
start=datetime.now()

#Statements

print datetime.now()-start

1
我最喜欢的!非常简单,但我发现最后一行应该是“print(datetime.now()-start)”,没有括号就无法工作。 - Thomas Winckelman
6
当时我写答案的时候是考虑到 Python 2 的。 - nsane

63

1
谢谢!这个很好用。对于那些第一次使用timeit的人来说,需要通过timeit的setup参数导入本地定义的符号。例如(如果myOwnFunc是本地定义的并且你想计时它):print timeit.timeit('myOwnFunc()', setup='from __main__ import myOwnFunc', number=1)。如果没有设置参数,它会抱怨找不到myOwnFunc。 - Landshark666

6

@JoshAdel已经涵盖了很多内容,但是如果你只想计时整个脚本的执行时间,你可以在类Unix系统下使用time命令运行它。

kotai:~ chmullig$ cat sleep.py 
import time

print "presleep"
time.sleep(10)
print "post sleep"
kotai:~ chmullig$ python sleep.py 
presleep
post sleep
kotai:~ chmullig$ time python sleep.py 
presleep
post sleep

real    0m10.035s
user    0m0.017s
sys 0m0.016s
kotai:~ chmullig$ 


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接