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 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
剖析Python的Twisted框架的核心特性
May 25 Python
Python中join函数简单代码示例
Jan 09 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
python提取包含关键字的整行数据方法
Dec 11 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
pandas 按日期范围筛选数据的实现
Feb 20 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
如何开发一个虚拟域名系统
2006/10/09 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
PHP中soap的用法实例
2014/10/24 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
js正则表达式简单校验方法
2021/01/03 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
PHP开发的一般流程
2013/08/13 面试题
小学教师暑期培训方案
2014/08/28 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
单位租房协议书样本
2014/10/30 职场文书
领导欢迎词范文
2015/01/26 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
Java 数组的使用
2022/05/11 Java/Android