如何获取 Python 程序的执行时间?

2022-09-05 00:54:12

我在Python中有一个命令行程序,需要一段时间才能完成。我想知道完成跑步的确切时间。

我已经看过这个模块,但它似乎只适用于一小段代码。我想对整个程序进行计时。timeit


答案 1

Python中最简单的方法:

import time
start_time = time.time()
main()
print("--- %s seconds ---" % (time.time() - start_time))

这假设您的程序至少需要十分之一秒才能运行。

指纹:

--- 0.764891862869 seconds ---

答案 2

我把这个模块放到我自己的目录中,然后插入到我的模块顶部:timing.pysite-packagesimport timing

import atexit
from time import clock

def secondsToStr(t):
    return "%d:%02d:%02d.%03d" % \
        reduce(lambda ll,b : divmod(ll[0],b) + ll[1:],
            [(t*1000,),1000,60,60])

line = "="*40
def log(s, elapsed=None):
    print line
    print secondsToStr(clock()), '-', s
    if elapsed:
        print "Elapsed time:", elapsed
    print line
    print

def endlog():
    end = clock()
    elapsed = end-start
    log("End Program", secondsToStr(elapsed))

def now():
    return secondsToStr(clock())

start = clock()
atexit.register(endlog)
log("Start Program")

如果我想展示的节目中有重要阶段,我也可以从我的程序中调用。但仅包含将打印开始和结束时间,以及总体运行时间。(原谅我晦涩难懂的函数,它只是将浮点数秒数格式化为hh:mm:ss.sss形式。timing.logimport timingsecondsToStr

注意:上述代码的Python 3版本可以在这里这里找到。


推荐