python中查看代码的运行时间方法

来源:互联网 发布:java 数字字符串排序 编辑:程序博客网 时间:2024/06/05 15:53

1. 使用装饰器来衡量函数执行时间

有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果:

import timefrom functools import wrapsdef fn_timer(function):  @wraps(function)  def function_timer(*args, **kwargs):    t0 = time.time()    result = function(*args, **kwargs)    t1 = time.time()    print ("Total time running %s: %s seconds" %        (function.func_name, str(t1-t0))        )    return result  return function_timer

接着,将这个装饰器添加到需要测量的函数之前,如下所示:

@fn_timerdef myfunction(...):...

例如,这里检测一个函数排序含有200万个随机数字的数组所需的时间:

@fn_timerdef random_sort(n):  return sorted([random.random() for i in range(n)])if __name__ == "__main__":  random_sort(2000000)

执行脚本时,会看到下面的结果:

Total time running random_sort: 1.41124916077 seconds

此方法的原文链接是10种检测Python程序运行时间、CPU和内存占用的方法

2. 使用time.time()函数

Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

以下实例展示了 time() 函数的使用方法:

#!/usr/bin/pythonimport timeprint "time.time(): %f " %  time.time()print time.localtime( time.time() )print time.asctime( time.localtime(time.time()) )

以上实例输出结果为:

time.time(): 1234892919.655932(2009, 2, 17, 10, 48, 39, 1, 48, 0)Tue Feb 17 10:48:39 2009

使用time.time()查看代码的耗时

def getHomeData(request):    starttime = time.time()  #测试的代码前获取当前时间    try:        hypervisors = api.nova.hypervisor_list(request)    except Exception:        hypervisors = []        exceptions.handle(request,                          _('Unable to retrieve hypervisor information.'))    endtime1 = time.time()  #测试的代码结束获取当前时间    timeall1 = endtime1 - starttime  #得到代码的运行时间

总结:
1、方法一较适合方法的运行时间
2、方法二不仅能获取方法的运行时间,也能获取某几行代码运行的时间

原创粉丝点击