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 多线程应用介绍
Dec 19 Python
python复制与引用用法分析
Apr 08 Python
Python设计模式之代理模式简单示例
Jan 09 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python实现超市扫码仪计费
May 30 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
Python可迭代对象操作示例
May 07 Python
python getpass模块用法及实例详解
Oct 07 Python
python创建学生成绩管理系统
Nov 22 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
python 6种方法实现单例模式
Dec 15 Python
Django如何创作一个简单的最小程序
May 12 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 无限极分类
2008/03/27 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python删除列表中重复记录的方法
2015/04/28 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
Python 函数返回值的示例代码
2019/03/11 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
综合内勤岗位职责
2014/04/14 职场文书
企业宣传策划方案
2014/05/29 职场文书
同志主要表现材料
2014/08/21 职场文书
消夏晚会主持词
2015/06/30 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
python入门学习关于for else的特殊特性讲解
2021/11/20 Python