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 相关文章推荐
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
python主线程捕获子线程的方法
Jun 17 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
python多线程同步之文件读写控制
Feb 25 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
Apr 13 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
Django model class Meta原理解析
Nov 14 Python
Python 实现PS滤镜的旋涡特效
Dec 03 Python
Python第三方库安装缓慢的解决方法
Feb 06 Python
PyTorch中permute的使用方法
Apr 26 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 URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
JavaScript访问样式表代码
2010/10/15 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
Python数据可视化图实现过程详解
2020/06/12 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
携程英文网站:Trip.com
2017/02/07 全球购物
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
新郎新娘婚礼答谢词
2014/01/11 职场文书
材料会计岗位职责
2014/03/06 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
申论倡议书范文
2014/05/13 职场文书
我爱我校演讲稿
2014/05/21 职场文书
汽车服务工程专业自荐信
2014/09/02 职场文书
财务管理专业自荐书
2014/09/02 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
刑事辩护词范文
2015/05/21 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书