Python中统计函数运行耗时的方法

yipeiwu_com6年前Python基础

本文实例讲述了Python中统计函数运行耗时的方法。分享给大家供大家参考。具体实现方法如下:

import time
def time_me(fn):
  def _wrapper(*args, **kwargs):
    start = time.clock()
    fn(*args, **kwargs)
    print "%s cost %s second"%(fn.__name__, time.clock() - start)
  return _wrapper
#这个装饰器可以在方便地统计函数运行的耗时。
#用来分析脚本的性能是最好不过了。
#这样用:
@time_me
def test(x, y):
  time.sleep(0.1)
@time_me
def test2(x):
  time.sleep(0.2)
test(1, 2)
test2(2)
#输出:
#test cost 0.1001529524 second
#test2 cost 0.199968431742 second

另一个更高级一点的版本是:

import time
import functools
def time_me(info="used"):
  def _time_me(fn):
    @functools.wraps(fn)
    def _wrapper(*args, **kwargs):
      start = time.clock()
      fn(*args, **kwargs)
      print "%s %s %s"%(fn.__name__, info, time.clock() - start), "second"
    return _wrapper
  return _time_me
@time_me()
def test(x, y):
  time.sleep(0.1)
@time_me("cost")
def test2(x):
  time.sleep(0.2)
test(1, 2)
test2(2)

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python 算法 排序实现快速排序

QUICKSORT(A, p, r)是快速排序的子程序,调用划分程序对数组进行划分,然后递归地调用QUICKSORT(A, p, r),以完成快速排序的过程。快速排序的最差时间复杂度为O...

Linux系统(CentOS)下python2.7.10安装

Linux系统(CentOS)下python2.7.10安装

本文记录了Linux系统(CentOS)安装Python,供大家参考,具体内容如下 Python(Linux) 下载地址 操作系统:Centos6.4 1、下载 下载的版本:Python...

python变量赋值方法(可变与不可变)

python变量赋值方法(可变与不可变)

python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。 一、可变对象和不可变对象 Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象...

关于numpy中np.nonzero()函数用法的详解

np.nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数。一般来说,通过help(np.nonzero)能够查看到该函数的解析与例程。但是,由于例程...

恢复百度云盘本地误删的文件脚本(简单方法)

今天被同步盘搞得焦头烂额。 辛苦码的代码(除了重要的、备份过的)都被删掉了…… 当时我就石化了。。。 随后发现同步盘目录有个delete目录,里面还有manifest.xml,和一堆改了...