Python执行时间的几种计算方法


Posted in Python onJuly 31, 2020

首先说一下我遇到的坑,生产上遇到的问题,我调度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时间 + 休眠或者等待时间

以上就是Python执行时间的几种计算方法的详细内容,更多关于Python执行时间的计算方法的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 Python
基于Python列表解析(列表推导式)
Jun 23 Python
Django中使用MySQL5.5的教程
Dec 18 Python
Python中断多重循环的几种方式详解
Feb 10 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
使用TFRecord存取多个数据案例
Feb 17 Python
python函数调用,循环,列表复制实例
May 03 Python
Python批量处理csv并保存过程解析
May 16 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Python中openpyxl实现vlookup函数的实例
Oct 28 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 25 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 #Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 #Python
深入浅析Python代码规范性检测
Jul 31 #Python
python使用Word2Vec进行情感分析解析
Jul 31 #Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 #Python
Python如何定义有可选参数的元类
Jul 31 #Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 #Python
You might like
php生成excel文件的简单方法
2014/02/08 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python实现textrank关键词提取
2018/06/22 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
linux面试题参考答案(8)
2016/04/19 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
关于人生的感言
2014/01/17 职场文书
车队司机自我鉴定
2014/03/02 职场文书
大学生创业项目方案
2014/03/08 职场文书
满月酒主持词
2014/03/27 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
演讲稿之开卷有益
2019/08/07 职场文书