Python执行时间的几种计算方法
作者:wangshuang1631 发布时间:2023-06-09 15:00:47
标签: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时间 + 休眠或者等待时间
来源:https://blog.csdn.net/wangshuang1631/article/details/54286551


猜你喜欢
- vue代码压缩优化设置productionSourceMap为false如果不需要生产环境的 source map,可以将其设置为 fals
- 最近有个需求,一个列表上下移动要有简单过渡效果,在网上找了找没找到,可能是我搜的关键词不对?试了试 Vue 的 transition-gro
- 先放关键代码:i = tf.train.range_input_producer(NUM_EXPOCHES, num_epochs=1, s
- 1. ES6的新特性 允许将对象或者数组'分解'成多个单独的值, 以对象的解构开始. &
- 背景golang版本:1.16之前遇到的问题,docker启动时禁用了oom-kill(kill后服务受损太大),导致golang内存使用接
- 我就废话不多说了,直接上代码吧!第一种def test1(): l = [] for i in range(1000
- MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发。可是数据量到了
- (1)二进制数据类型 二进制数据包括 Binary、Varbinary 和 ImageBinary 数据类型既可以是固定长度的(Binary
- facebook的信息架构设计,是目前为止互联网上我见过的最合理的信息架构。每次培训,我基本都需要拿20分钟左右的时间来解析它,包括老的、新
- 前言mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。错误提示:this
- 2。date_default_timezone_set("PRC"); 3。PHP&
- exec函数,可以循环定义、赋值多个变量exec ("temp%s=1"%1)这段代码的意思是,让exec执行temp1
- 由于日期存在不同位数的月份或天数,出现参差不齐,既不美观也在日期比较时不好操作。如使用本涵数就会排列整齐:'================
- 1. 解决思路首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载。解决方案:截图然后根据该图片的定位和长高
- 人体的视觉系统是一个相当神奇的存在,对于下面的一串手写图像,可以毫不费力的识别出他们是504192,轻松到让人都忘记了其实这是一个复杂的工作
- 什么是JSON Web Token?JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式
- 目录1. python内置方法(read、readline、readlines)2. 内置模块(csv)3. 使用numpy库(loadtx
- Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过
- I. 前言在前面的一篇文章PyTorch搭建LSTM实现时间序列预测(负荷预测)中,我们利用LSTM实现了负荷预测,但我们只是简单利用负荷预
- 在网上搜索Linux下安装MySQL的方法时,出现了很多的方法,但是很多的方法很复杂,而且还不一定成功,试了很久终于试验出一种简单的方法,下