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 Shell获取hostname和fqdn释疑
Jan 25 Python
Python操作Excel之xlsx文件
Mar 24 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
TensorFlow损失函数专题详解
Apr 26 Python
TensorFlow Session会话控制&Variable变量详解
Jul 30 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
Python理解递归的方法总结
Jan 28 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
简单了解python的一些位运算技巧
Jul 13 Python
Python的互斥锁与信号量详解
Sep 12 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
js Form.elements[i]的使用实例
2011/11/13 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
js评分组件使用详解
2017/06/06 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
python保存数据到本地文件的方法
2018/06/23 Python
flask中的wtforms使用方法
2018/07/21 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
优秀毕业自我鉴定
2014/02/15 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
热门专业求职信
2014/05/24 职场文书
工程承包协议书范本
2014/09/29 职场文书
公司文体活动总结
2015/05/07 职场文书
幼儿园辞职信
2015/05/13 职场文书
毕业酒会致辞
2015/07/29 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python