优草派  >   Python

如何检测Python的运行时间?检测Python运行时间的方法

翟嘉慧            来源:优草派

在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢?首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分进行优化。同时,还需要控制内存和CPU的使用,这样可以在另一方面优化代码。文章中详细的讲解了检测Python运行时间的方法,一起来看看吧。

如何检测Python的运行时间?检测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知识。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。