在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢?首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分进行优化。同时,还需要控制内存和CPU的使用,这样可以在另一方面优化代码。文章中详细的讲解了检测Python运行时间的方法,一起来看看吧。
1、装饰器来衡量函数执行时间
在python中有一种非常简单的方式获取执行的时间,那就是通过对装饰器进行定义,当我们要进行函数的测量的时候,就可以利用这个装饰器去获得执行的时间,并且最后会输出运行的结果,举个例子代码如下:
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(...):
2、timeit模块
第二个方法就是使用Python中的timeit模块,使用这个模块可以用来计算平均时间消耗。当我们执行下面的脚本时就可以运行该模块。
python -m timeit -n 4 -r 5 -s "import timing_functions" "timing_functions.random_sort(2000000)"
在代码中的timing_functions表示的是一个Python脚本文件名称。最后会在末尾将运行结果输出,最后得到的结果如下:
6 loops, best of 4: 2.08 sec per loop
这表示测试了6次,平均每次测试重复4次,测试的过程中,最好的一次为2.08秒。当我们不指定测试或重复次数时,默认值为10次测试,每次重复5次。
关于如何检测Python的运行时间?检测Python运行时间的方法的文章就先分享到这里了,文章中介绍了两种检测python运行时间的方法,希望大家通过对这篇文章的学习能掌握到更多的python知识。