python程序运行时间方法的更替

python程序运行时间方法的更替,第1张

大家好,相信很多刚开始刷题的小伙伴总会遇到程序运行超时的问题,所以大家肯定都想提前知道自己的程序运行了多长时间,这次我就来总结一下有那几种方法可用。如果有误,欢迎各位大佬指正。


以下方法模板为:start   要运行的程序    end   。再计算end-start来输出时间

 

1.time.clock()

用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。

import time
start = time.clock()
time.sleep(2)
end = time.clock()
print(end-start)

该方法在pyhon3.3版本之后就已经弃用了,在python3.8之后将会被移除,也就是说该方法在python3.8以前还可以用,但是不建议用,在python3.8以后再用就会报错了

所以,建议大家现在就不用这种方法了

2.time.time()
import time
start = time.time()
def mov(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        mov(n-1,a,c,b)
        print(a,'->',c)
        mov(n-1,b,a,c)
mov(10,'a','b','c')
end = time.time()
print('{:.20f}'.format(end-start))
#输出为:0.01653623580932617188

用time模块的话,用end-start输出的结果是以秒为单位,但由于大多数情况下,程序运行的时间都是以毫秒计算的,如果不精确到小数点的话,显示的结果为0

程序每次运行的时间不一定是固定的,所以每次都会有一定的误差

3.datetime.now()
from datetime import datetime
start = datetime.now()
def mov(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        mov(n-1,a,c,b)
        print(a,'->',c)
        mov(n-1,b,a,c)
mov(8,'a','b','c')
end = datetime.now()
print(end-start)
#输出为:0:00:00.015574

作为现在常用的datetimme模块,输出的格式有点不一样,而且常常末尾秒输出的为0

而且还不能精确到小数位

4.timeit.default_timer()
import timeit
sta = timeit.default_timer()
def mov(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        mov(n-1,a,c,b)
        print(a,'->',c)
        mov(n-1,b,a,c)
mov(10,'a','b','c')
end = timeit.default_timer()
print('{:.10f}'.format(end-sta))
#输出为:0.0132965000

timeit模块可以精确测量小段代码执行的时间,但每次也会有误差


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存