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代码实现并行任务(附代码)
Feb 02 Python
python 列表降维的实例讲解
Jun 28 Python
python flask实现分页的示例代码
Aug 02 Python
python变量命名的7条建议
Jul 04 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
基于python plotly交互式图表大全
Dec 07 Python
PyCharm下载和安装详细步骤
Dec 17 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
django中cookiecutter的使用教程
Dec 03 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
Python requests用法和django后台处理详解
Mar 19 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
文章推荐系统(三)
2006/10/09 PHP
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
php计算整个目录大小的方法
2015/06/19 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Python3实现Web网页图片下载
2016/01/28 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
flask项目集成swagger的方法
2020/12/09 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
新锐科技Java程序员面试题
2016/07/25 面试题
初中政治教学反思
2014/01/17 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
HTML中的表单元素介绍
2022/02/28 HTML / CSS