Note——time

time

Note——time_第1张图片
Note——time_第2张图片

import

import datetime
import time

Definition of time

  1. from 1970-01-01 00:00:00 UTC
    Coordinated Universal Time

as the float format of ‘seconds’

For example

Note——time_第3张图片

  1. use structured time lists
    [ year,month,day,hours,minutes,seconds…]
    表示从1970-01-01 00:00:00 UTC,开始到现在所经历的时间.
    Note——time_第4张图片
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=31, tm_hour=1, tm_min=37, 
tm_sec=36, tm_wday=2, tm_yday=31, tm_isdst=0)

Function of time

time.clock()

返回程序运行的整个时间段中中CPU运行的时间

def cpu_run():
    start = time.clock()
    for i in range(1000):
        j = i * 2 
        for k in range(j):
            t = k
            print(t)
    end = time.clock()
    print('CPU excution takes: ',end - start, 'seconds')

Note——time_第5张图片

python3.8就不再支持 time.clock()

If python > 3.8
time.perf_counter() 替换

def cpu_run():
    start = time.perf_counter()
    for i in range(1000):
        j = i * 2 
        for k in range(j):
            t = k
            print(t)
    end = time.perf_counter()
    print('CPU excution takes: ',end - start, 'seconds')

Note——time_第6张图片

time.sleep()

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

time.localtime()

用结构化的时间组,表示本地时间
Note——time_第7张图片

time.ctime()

用字符串string表示时间
Note——time_第8张图片

time.mktime()

将本地时间列表转化为浮点数的秒来表示
Note——time_第9张图片

time.strftime()

将时间组时间转化为指定格式的String类
Note——time_第10张图片

time.strptime

将String类时间转化为时间组格式
Note——time_第11张图片

time.tzset()

更改本地时区

Applicaiton

用time来计算一下程序执行所耗时间

def run():
    start = time.time()
    for i in range(1000):
        j = i * 2 
        for k in range(j):
            t = k
            print(t)
    end = time.time()
    print('This program excution takes: ',end - start, 'seconds')

在这里插入图片描述

Optimize

start = time.perf_counter()
    for i in range(1000):
        j = i * 2 
        for k in range(j):
            t = k
            print(t)
    end = time.perf_counter()
    print('CPU excution takes: ',end - start, 'seconds')

此段代码CPU执行时间大概5秒

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

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

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

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

所以 ,以后写代码时,要精简不必要的开销,譬如经常使用print()

你可能感兴趣的:(Research,Python,python,算法)