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文件的md5加密方法
Apr 06 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
python中reader的next用法
Jul 24 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
深入了解Django View(视图系统)
Jul 23 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
Java文件与类动手动脑实例详解
Nov 10 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Flask处理Web表单的实现方法
Jan 31 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP中的string类型使用说明
2010/07/27 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
初识Node.js
2014/09/03 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
详解node child_process模块学习笔记
2018/01/24 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
go语言计算两个时间的时间差方法
2015/03/13 Python
详解Python多线程
2016/11/14 Python
Python书单 不将就
2017/07/11 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
女生节标语
2014/06/26 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书