当前位置: 首页 > 编程笔记 >

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

何志业
2023-03-14
本文向大家介绍Python执行时间的计算方法小结,包括了Python执行时间的计算方法小结的使用技巧和注意事项,需要的朋友参考一下

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

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

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

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

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

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

方法1:

import datetime
starttime = datetime.datetime.now()
#long running
#do something other
endtime = datetime.datetime.now()
print (endtime - starttime).seconds

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

方法2:

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

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

方法3:

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

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

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 可能的重复: 如何测量函数的运行时间? 我有一种I/O计时方法,它将数据从一个位置复制到另一个位置。计算执行时间的最佳和最真实的方法是什么<代码>线程<代码>定时器<代码>秒表?还有其他解决方案吗?我想要最准确的,尽可能简短的。

  • 本文向大家介绍python计算时间差的方法,包括了python计算时间差的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python计算时间差的方法。分享给大家供大家参考。具体分析如下: 1、问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2、解决方法: 标准模块datetime和第三方包dateutil(特别是dateutil的rrule.coun

  • 本文向大家介绍Python计算程序运行时间的方法,包括了Python计算程序运行时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python计算程序运行时间的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍asp.net计算每个页面执行时间的方法,包括了asp.net计算每个页面执行时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了asp.net计算每个页面执行时间的方法。分享给大家供大家参考。具体分析如下: 这里的asp.net代码可实现计算每个页面的执行时间,无需要修改页面的相关代码,这段代码会给所有的页面统一加上执行时间显示 希望本文所述对大家的asp.net程序

  • 本文向大家介绍C#计算程序执行过程花费时间的方法,包括了C#计算程序执行过程花费时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#计算程序执行过程花费时间的方法。分享给大家供大家参考。具体如下: 计算执行完程序花费的时间: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 我想通过查看算法的运行时性能来测试哪种数据结构是最佳的,我该怎么做? 例如我已经有一个; 假设我有我的,我想知道下面的语句需要多长时间来执行:。 我该如何计时? 谢谢! 问题答案: 首先看一下我对这个问题的回答;它包含一个可移植的(windows/linux)函数,以毫秒为单位获取时间。 接下来,执行以下操作: 全做完了!(请注意,我没有尝试编译它)