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中pip安装非PyPI官网第三方库的方法
Jun 02 Python
python实现图书借阅系统
Feb 20 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
python celery分布式任务队列的使用详解
Jul 08 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
如何用python批量调整视频声音
Dec 22 Python
Python中基础数据类型 set集合知识点总结
Aug 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
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
Js base64 加密解密介绍
2013/10/11 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
Python3遍历目录树实现方法
2015/05/22 Python
python自动zip压缩目录的方法
2015/06/28 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python中最小二乘法详细讲解
2021/02/19 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js