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中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
python回调函数中使用多线程的方法
Dec 25 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
目前最全的python的就业方向
Jun 05 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
Python中asyncio模块的深入讲解
Jun 10 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 Python
Python中过滤字符串列表的方法
Dec 22 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/01 无线电
优化PHP程序的方法小结
2012/02/23 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
浅谈js闭包理解
2019/04/01 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python模块导入的方法
2019/10/24 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
Java面向对象面试题
2016/12/26 面试题
银行财务部实习生的自我鉴定
2013/11/27 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
详解Vue slot插槽
2021/11/20 Vue.js
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript