Python计算程序运行时间—time.time、time.clock

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

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

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

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

time包中的功能都很实用:

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

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

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

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

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

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

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

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

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

定义一个函数run():

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

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

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

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

解果:

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

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

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

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180131G0HLQC00?refer=cp_1026

相关快讯

扫码关注云+社区