• Note——time


    time

    请添加图片描述
    请添加图片描述

    import

    import datetime
    import time
    
    • 1
    • 2

    Definition of time

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

    as the float format of ‘seconds’

    For example

    在这里插入图片描述

    1. use structured time lists
      [ year,month,day,hours,minutes,seconds…]
      表示从1970-01-01 00:00:00 UTC,开始到现在所经历的时间.
      在这里插入图片描述
    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)
    
    • 1
    • 2

    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')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    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')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    time.sleep()

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

    time.localtime()

    用结构化的时间组,表示本地时间
    在这里插入图片描述

    time.ctime()

    用字符串string表示时间
    在这里插入图片描述

    time.mktime()

    将本地时间列表转化为浮点数的秒来表示
    在这里插入图片描述

    time.strftime()

    将时间组时间转化为指定格式的String类
    在这里插入图片描述

    time.strptime

    将String类时间转化为时间组格式
    在这里插入图片描述

    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')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    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')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

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

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

    带着疑问,我们进行第三次测试,此次我们去掉print(),直接让CPU完成整个for循环的计算:
    在这里插入图片描述

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

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

  • 相关阅读:
    算法记录--好多内容也是借鉴大神的
    婚约终止,送出去的彩礼还能要回吗?
    逆向-beginners之return
    jvm参数调优
    Rust开发——Rust开发中thread_local
    GBDT模型详解
    内网离线 k3s Rancher 高可用安装部署流程
    【Tools】了解人工通用智能 (AGI):未来的智能体
    JavaScript高级程序设计(第四版)--学习记录之对象、类和面向对象编程(中)
    [基础服务] [ELK] CentOS7.x安装ELFK / (ElasticSearch + Kibana + Logstash+Filebeat)
  • 原文地址:https://blog.csdn.net/weixin_45646640/article/details/133942667