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 RuntimeError: thread.__init__() not called解决方法
Apr 28 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
YUV转为jpg图像的实现
Dec 09 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
Opencv求取连通区域重心实例
Jun 04 Python
python怎么对数字进行过滤
Jul 05 Python
python实现取余操作的简单实例
Aug 16 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
详解python对象之间的交互
Sep 29 Python
Python获取android设备cpu和内存占用情况
Nov 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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
PHP对象相关知识总结
2017/04/09 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
JS array 数组详解
2009/03/22 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
PyQt5每天必学之进度条效果
2018/04/19 Python
python调用staf自动化框架的方法
2018/12/26 Python
把pandas转换int型为str型的方法
2019/01/29 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
大学生的自我鉴定范文
2014/01/21 职场文书
五年级语文教学反思
2014/01/30 职场文书
财务出纳岗位职责
2014/02/03 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书