• 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()

  • 相关阅读:
    JAVA中自定义扩展Swagger的能力,自动生成参数取值含义说明,提升开发效率
    方案:基于AI烟火识别与视频技术的秸秆焚烧智能化监控预警方案
    【已解决】EOFError: Ran out of input
    【丐版JDK管理工具-Daen-JDKMAN-V1.0】Python实现JDK多版本切换管理工具V1.0,已打包成EXE
    产品经理专业知识50篇(七)-如何建立一套完整的用户成长体系?
    简单讲讲RISC-V跳转指令基于具体场景的实现
    Python视频剪辑-Moviepy视频尺寸和颜色调整技巧
    js双向绑定
    model_selection.RepeatedKFold
    Bigkey 问题的解决思路与方式探索
  • 原文地址:https://blog.csdn.net/weixin_45646640/article/details/133942667