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海龟绘图实例教程
Jul 24 Python
python获取当前日期和时间的方法
Apr 30 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
Python 加密的实例详解
Oct 09 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python输出决策树图形的例子
Aug 09 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
python next()和iter()函数原理解析
Feb 07 Python
Python如何省略括号方法详解
Mar 21 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
Pytorch 中的optimizer使用说明
Mar 03 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伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python脚本实现格式化css文件
2015/04/08 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python实现的堆排序算法示例
2018/04/29 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
高中生物教学反思
2014/02/05 职场文书
售后求职信范文
2014/03/15 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
秦兵马俑导游词
2015/02/02 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
简单谈谈Python面向对象的相关知识
2021/06/28 Python