• Python执行时间的计算方法小结


    Python执行时间的计算方法小结

    首先说一下我遇到的坑,生产上遇到的问题,我调度Python脚本执行并监控这个进程,python脚本运行时间远远大于python脚本中自己统计的程序执行时间。

    监控python脚本执行的时间是36个小时,而python脚本中统计自己执行的时间是4个小时左右。

    问题暴漏之后首先想到的是Linux出了问题,查找各种日志未发现有何异常。

    然后是想到python中用到的py2neo的写数据异步,阻塞进程执行。

    最后,终于找到问题的所在:python脚本使用统计时间的方式是time.clock(),而这种方式统计的是CPU的执行时间,不是程序的执行时间。

    接下来,就几种python的统计时间方式对比一下:

    方法1:


    datetime.datetime.now()获取的是当前日期,在程序执行结束之后,这个方式获得的时间值为程序执行的时间。

    方法2:

    start=time.time()
    #long running
    #do something other
    end=time.time()
    printend-start

    time.time()获取自纪元以来的当前时间(以秒为单位)。如果系统时钟提供它们,则可能存在秒的分数。所以这个地方返回的是一个浮点型类型。这里获取的也是程序的执行时间。

    方法3:

    start=time.clock()
    #long running
    #do something other
    end=time.clock()
    printend-start

    time.clock()返回程序开始或第一次被调用clock()以来的CPU时间。 这具有与系统记录一样多的精度。返回的也是一个浮点类型。这里获得的是CPU的执行时间。

    注:程序执行时间=cpu时间 io时间 休眠或者等待时间

  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/amengduo/p/9586911.html
Copyright © 2020-2023  润新知