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 相关文章推荐
简单解析Django框架中的表单验证
Jul 17 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python按钮的响应事件详解
Mar 04 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
python异常触发及自定义异常类解析
Aug 06 Python
python中seaborn包常用图形使用详解
Nov 25 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
javascript中获取选中对象的类型
2007/04/02 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
python实现哈希表
2014/02/07 Python
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
村捐赠仪式答谢词
2014/01/21 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
毕业实习证明范本
2015/06/16 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers