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实现简易过滤删除数字的方法小结
Jan 09 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
django框架forms组件用法实例详解
Dec 10 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
深入apache host的配置详解
2013/06/09 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
php检查页面是否被百度收录
2015/10/28 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
js constructor的实际作用分析
2011/11/15 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
Python求解平方根的方法
2015/03/11 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
python绘制双柱形图代码实例
2017/12/14 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
Python pandas用法最全整理
2019/08/04 Python
Django视图扩展类知识点详解
2019/10/25 Python
Tensorflow 实现释放内存
2020/02/03 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
销售类个人求职信范文
2013/09/25 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL