Python执行时间的几种计算方法


Posted in Python onJuly 31, 2020

首先说一下我遇到的坑,生产上遇到的问题,我调度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执行时间的计算方法的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现定时播放mp3
Mar 29 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
Django分页功能的实现代码详解
Jul 29 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
python+OpenCV实现图像拼接
Mar 05 Python
这样写python注释让代码更加的优雅
Jun 02 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 #Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 #Python
深入浅析Python代码规范性检测
Jul 31 #Python
python使用Word2Vec进行情感分析解析
Jul 31 #Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 #Python
Python如何定义有可选参数的元类
Jul 31 #Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 #Python
You might like
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
php实现简易计算器
2020/08/28 PHP
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
python实现得到一个给定类的虚函数
2014/09/28 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python3.6简单反射操作示例
2018/06/14 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
python如何查看安装了的模块
2020/06/23 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
python 从list中随机取值的方法
2020/11/16 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
百度JavaScript笔试题
2015/01/15 面试题
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
学期个人自我总结
2015/02/13 职场文书