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


Posted in Python onMarch 17, 2017

首先说一下我遇到的坑,生产上遇到的问题,我调度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中文分词实现方法(安装pymmseg)
Jun 14 Python
Python中查看文件名和文件路径
Mar 31 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
Python2与Python3的区别点整理
Dec 12 Python
python如何使用Redis构建分布式锁
Jan 16 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
python用字节处理文件实例讲解
Apr 13 Python
python django事务transaction源码分析详解
Mar 17 #Python
Python自动生产表情包
Mar 17 #Python
Python实现的异步代理爬虫及代理池
Mar 17 #Python
Python 专题一 函数的基础知识
Mar 16 #Python
python 专题九 Mysql数据库编程基础知识
Mar 16 #Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 #Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 #Python
You might like
PHP 身份验证方面的函数
2009/10/11 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
理解JavaScript中的事件
2006/09/23 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
详解如何减少python内存的消耗
2019/08/09 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Python for i in range ()用法详解
2020/09/18 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
社区敬老月活动实施方案
2014/02/17 职场文书
安全生产管理责任书
2014/04/16 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
企业宣传标语
2014/06/09 职场文书
杭白菊导游词
2015/02/10 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
2015年技术员工作总结
2015/04/10 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android