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中的Matplotlib模块入门教程
Apr 15 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
python一键升级所有pip package的方法
Jan 16 Python
关于反爬虫的一些简单总结
Dec 13 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
Python之时间和日期使用小结
Feb 14 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
python 字典访问的三种方法小结
Dec 05 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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 flush类输出缓冲剖析
2008/10/19 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
详解python logging日志传输
2020/07/01 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
大学三年的自我评价
2013/12/25 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
身边的榜样活动方案
2014/08/20 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
母亲节主题班会
2015/08/14 职场文书
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers