找出一个python脚本完成执行的时间
我在python脚本中有以下代码:
def fun() #Code here fun()
我想执行这个脚本,并且发现在几分钟内执行了多less时间。 如何找出这个脚本需要多less时间才能执行?有些例子是非常值得赞赏的。
谢谢
from datetime import datetime startTime = datetime.now() #do something print datetime.now() - startTime
您是否在Linux或UNIX上的命令行上执行该脚本? 在这种情况下,你可以使用
time ./script.py
import time start = time.time() fun() print 'It took', time.time()-start, 'seconds.'
我通常做的是使用time
库中的clock()
或time()
。 clock
测量解释器时间,而time
测量系统时间。 其他警告可以在文档中find。
例如,
def fn(): st = time() dostuff() print 'fn took %.2f seconds' % (time() - st)
或者,您可以使用timeit
。 由于速度有多快,我经常使用time
方法,但是如果你计算一段可以分离的代码, timeit
就派上用场了。
从timeit文档 ,
def test(): "Stupid test function" 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()
然后转换为分钟,你可以简单地除以60.如果你想脚本的运行时间在一个易于阅读的格式,无论是秒还是天,你可以转换为一个timedelta
和str
:
runtime = time() - st print 'runtime:', timedelta(seconds=runtime)
这将打印出一些forms的[D day[s], ][H]H:MM:SS[.UUUUUU]
。 您可以查看timedelta文档 。
最后,如果你实际上是在分析你的代码,Python也提供了configuration文件库 。
使用timeit模块。 这很容易。 运行你的example.py文件,使它在Python Shell中处于活动状态,你现在应该可以在shell中调用你的函数。 试试看是否有效
>>>fun(input) output
好,那个工作,现在import时间,并设置一个计时器
>>>import timeit >>>t = timeit.Timer('example.fun(input)','import example') >>>
现在我们有了我们的定时器,我们可以看到需要多长时间
>>>t.timeit(number=1) some number here
然后我们去,它会告诉你执行该function需要多less秒(或更less)。 如果它是一个简单的函数,那么你可以将它增加到t.timeit(number = 1000)(或任何数字!),然后用答案除以数字来得到平均值。
我希望这有帮助。
import time startTime = time.time() # Your code here ! print ('The script took {0} second !'.format(time.time() - startTime))
以前的代码适合我,没有问题!
import timeit start = timeit.default_timer() #do some nice things... stop = timeit.default_timer() total_time = stop - start # output running time in a nice format. mins, secs = divmod(total_time, 60) hours, mins = divmod(mins, 60) sys.stdout.write("Total running time: %d:%d:%d.\n" % (hours, mins, secs))