python怎样记程序运行时间

2025年03月01日 阅读 (46)

我们先来看一下python3中help(time):

python怎样记程序运行时间(1)
python怎样记程序运行时间(2)

关于time库中表示时间的方法,官方给出了2种:

1.从1970-01-01 00:00:00 UTC,开始到现在所经历的时间,以浮点数的'秒'来表示

time.time()1517362540.347517

2.用结构化的时间组(year,month,day,hours,minutes,seconds....)来表示从1970-01-01 00:00:00 UTC,开始到现在所经历的时间.

time.gmtimetime.struct_time

time包中的功能都很实用:

time.clock()返回程序运行的整个时间段中中CPU运行的时间,下面会重点介绍

time.sleep()爬虫中常用,让程序暂停执行指定的秒数,如time.sleep(2)

time.localtime()用结构化的时间组,表示本地时间

time.localtimetime.struct_timetype(time.localtime)class 'time.struct_time'

time.ctime()用字符串string类型表示时间。

time.ctime()'Wed Jan 31 09:49:09 2018'

time.mktime()将本地时间列表转化为浮点数的秒来表示

time.mktime(time.localtime())1517363569.0

time.strftime()将时间组时间转化为指定格式的String类

time.strftime)'2018-01-31 10:04:26'

time.strptime()将String类时间转化为时间组格式

time.strptime)time.struct_time

time.tzset()更改本地时区(这个功能表示没用过~)

现在我想用time来计算一下程序执行的时间:

定义一个函数run():

def run:    start = time.time    for i in range:        j = i * 2         for k in range:            t = k            print    end = time.time    print
python怎样记程序运行时间(3)

可以看到,程序执行时间是5.73039174079895s。

现在,让我们用time.clock()来看看程序执行过程中CPU执行了多长时间:

def run2:    start = time.clock    for i in range:        j = i * 2         for k in range:            t = k            print    end = time.clock    print
python怎样记程序运行时间(4)

可见,此段代码CPU执行时间为:5.3150249999999915。

那么问题来了,CPU真的执行了这么长时间么?会不会有什么东西是我没考虑进去的呢?

仔细看一下,这段程序主要内容就是两个for循环,for循环执行计算的时候CPU肯定是在运行的,那么print()函数打印期间这个时间段的CPU执行时间有没有算进去?

带着疑问,我们进行第三次测试,此次我们去掉print(),直接让CPU完成整个for循环的计算:

def run3:    start = time.clock    for i in range:        j = i * 2         for k in range:            t = k    end = time.clock    print

解果:

run3()CPU执行时间: 0.04683999999997468

可以看见,CPU的执行时间瞬间降低到0.04s,细想一下,其实不难理解。

因为去掉了print(),所以整个run3()函数就只剩下完整的for循环,CPU可以连续执行,(不必一遍for循环一边print()来回切换),连续执行的CPU还是很快的~

所以,这给了我一个启发,以后写代码时,要精简不必要的开销,譬如经常使用print()。。。

郑重声明:玄微运势的内容来自于对中国传统文化的解读,对于未来的预测仅供参考。