有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果:
import time
from functools import wraps
def 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_timer
def myfunction(...):
...
例如,这里检测一个函数排序含有200万个随机数字的数组所需的时间:
@fn_timer
def 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和内存占用的方法
Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
以下实例展示了 time() 函数的使用方法:
#!/usr/bin/python
import time
print "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、方法二不仅能获取方法的运行时间,也能获取某几行代码运行的时间