Python执行时间的计算方法小结

首先说一下我遇到的坑,生产上遇到的问题,我调度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时间 + 休眠或者等待时间

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • python 时间戳与格式化时间的转化实现代码

    python 里面与时间有关的模块主要是 time 和 datetime 如果想获取系统当前时间戳:time.time() ,是一个float型的数据 获取系统当前的时间信息 : time.ctime() 是一个str类型的时间字符串,一般比较少用与开发中 如果想获得当前的普通日期字符串,可以简单的用str(datetime.date.today()) 还有就是时间和时间戳之间的相互转化(很常用): 日期到时间戳上的转换: import datetime import time t = date

  • Python编程实现输入某年某月某日计算出这一天是该年第几天的方法

    本文实例讲述了Python编程实现输入某年某月某日计算出这一天是该年第几天的方法.分享给大家供大家参考,具体如下: #基于 Python3 一种做法: def is_leap_year(year): # 判断闰年,是则返回True,否则返回False if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: return True else: return False def function1(year, month, day): #

  • Python编程判断这天是这一年第几天的方法示例

    本文实例讲述了Python编程判断这天是这一年第几天的方法.分享给大家供大家参考,具体如下: 题目:输入某年某月某日,判断这一天是这一年的第几天? 实现代码: year=int(input('请输入年:')) month=int(input('请输入月:')) day=int(input('请输入天:')) sum=day days = [31,28,31,30,31,30,31,31,30,31,30,31] i=0 if ( year%4 == 0 and year%100 != 0) or

  • Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date import time nowtime = date.today() def convertstringtodate(stringtime): "把字符串类型转换为date类型" if stringtime[0:2] == "20": year=stringtime[0:4

  • Python实现获取某天是某个月中的第几周

    找了半天竟然没找到,如何在Python的datetime处理上,获取某年某月某日,是属于这个月的第几周. 无奈之下求助同学,同学给写了一个模块.[如果你知道Python有这个原生的库,请不吝赐教] 我稍作整理记录在下. 复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = '####'   import datetime     def get_week_of_month(year, month, day):

  • python简单实现获取当前时间

    说起计算机中的时间,还有一些比较有意思的事,比如我们经常听到的Unix时间戳,UTC时间,格林威治时间等,从表示上来讲他们基本属于同一个东西,因为他们的时间表示都是从1970年.1月.1日开始到现在的秒数,到这有人就有问题了,为毛是从这个时间点开始的呢?因为这天呀发生了一件大事,UNIX操作系统诞生了,这UNIX诞生可有来历,他是一个歪果仁利用老婆孩子外出度假的时间来完成的,我假设大家了解操作系统的复杂性,那么我们预估他老婆要外出几年才能完成UNIX系统的编写?3年?5年? 错,人家老婆就去了一

  • python返回昨天日期的方法

    本文实例讲述了python返回昨天日期的方法.分享给大家供大家参考.具体实现方法如下: #-*-coding:utf-8-*- import datetime def getYesterday(): # today=datetime.date.today() oneday=datetime.timedelta(days=1) yesterday=today-oneday return yesterday 希望本文所述对大家的Python程序设计有所帮助.

  • python获取指定时间差的时间实例详解

    python获取指定时间差的时间实例详解 在分析数据的时间经常需要截取一定范围时间的数据,比如三天之内,两小时前等等时间要求的数据,因此将该部分经常需要用到的功能模块化,方便以后以后用到的时候复用.在此,也分享给大家. import time import sys reload(sys) def get_day_of_day(UTC=False, days=0, hours=0, miutes=0, seconds=0): ''''''' if days>=0,date is larger th

  • python获得一个月有多少天的方法

    本文实例讲述了python获得一个月有多少天的方法.分享给大家供大家参考.具体分析如下: 在python的datetime模块中没有一个月有多少天的方法,但是可以使用calendar模块获得. 如下代码: import calendar monthRange = calendar.monthrange(2013,6) print monthRange 输出: (5,30) 输出的是一个元组,第一个元素是月份(0-11),第二个元素是这个月的天数. 希望本文所述对大家的Python程序设计有所帮助

  • python计算N天之后日期的方法

    本文实例讲述了python计算N天之后日期的方法.分享给大家供大家参考.具体如下: python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行 #! /usr/bin/env python #coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() 输出结果如

  • 利用python获取某年中每个月的第一天和最后一天

    搜索关键字: python get every first day of month 参考解答: 方法一: >>> import calendar >>> calendar.monthrange(2002,1) (1, 31) >>> calendar.monthrange(2008,2) (4, 29) >>> calendar.monthrange(2100,2) (0, 28) >>> calendar.mon

随机推荐