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


Posted in Python onMay 05, 2015

本文实例讲述了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 相关文章推荐
Python探索之Metaclass初步了解
Oct 28 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
python检索特定内容的文本文件实例
Jun 05 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
对python中if语句的真假判断实例详解
Feb 18 Python
树莓派实现移动拍照
Jun 22 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
python的变量和简单数字类型详解
Sep 15 Python
Python调用命令行进度条的方法
May 05 #Python
Python记录详细调用堆栈日志的方法
May 05 #Python
进一步探究Python的装饰器的运用
May 05 #Python
Python获取任意xml节点值的方法
May 05 #Python
Python实现方便使用的级联进度信息实例
May 05 #Python
Python封装shell命令实例分析
May 05 #Python
用Python中的字典来处理索引统计的方法
May 05 #Python
You might like
完美的php分页类
2017/10/24 PHP
JavaScript Prototype对象
2009/01/07 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
Python生成器(Generator)详解
2015/04/13 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
pandas 时间格式转换的实现
2019/07/06 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
幼儿园中班评语大全
2014/04/17 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
出差报告范文
2014/11/06 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
加薪申请报告范本
2015/05/15 职场文书
教师见习总结范文
2015/06/23 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
MongoDB数据库的安装步骤
2021/06/18 MongoDB
R9700摩机记
2022/04/05 无线电
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS