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实现封装得到virustotal扫描结果
Oct 05 Python
Python生成随机密码
Mar 10 Python
Pycharm学习教程(1) 定制外观
May 02 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Python编写合并字典并实现敏感目录的小脚本
Feb 26 Python
利用python求积分的实例
Jul 03 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python3实现高效的端口扫描
Aug 31 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
浅谈Python程序的错误:变量未定义
Jun 02 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
Django框架多表查询实例分析
2018/07/04 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
浅析Python 条件控制语句
2020/07/15 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
总经理秘书的岗位职责
2013/12/27 职场文书
工作睡觉检讨书
2014/02/25 职场文书
民事赔偿协议书
2014/11/02 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
解除租赁合同协议书
2016/03/21 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫