找出一个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.如果你想脚本的运行时间在一个易于阅读的格式,无论是秒还是天,你可以转换为一个timedeltastr

 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))