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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
Python解析最简单的验证码
Jan 07 Python
Python中字符串的处理技巧分享
Sep 17 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Pytorch之view及view_as使用详解
Dec 31 Python
python小程序基于Jupyter实现天气查询的方法
Mar 27 Python
python中使用input()函数获取用户输入值方式
May 03 Python
学习python需要有编程基础吗
Jun 02 Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 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脚本数据库功能详解(上)
2006/10/09 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
JavaScript 异步调用
2017/10/25 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
python小程序实现刷票功能详解
2019/07/17 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
优秀社区干部事迹材料
2014/02/03 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
管理工程专业求职信
2014/08/10 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
用Python爬取某乎手机APP数据
2021/06/15 Python
Python中rapidjson参数校验实现
2021/07/25 Python
Java 写一个简单的图书管理系统
2022/04/26 Java/Android