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 编程之twisted详解及简单实例
Jan 28 Python
Python决策树之基于信息增益的特征选择示例
Jun 25 Python
python提取具有某种特定字符串的行数据方法
Dec 11 Python
对Python实现累加函数的方法详解
Jan 23 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
Django中如何使用sass的方法步骤
Jul 09 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
对Django中内置的User模型实例详解
Aug 16 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
javascript基础知识讲解
2017/01/11 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
树莓派实现移动拍照
2019/06/22 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
Python读写压缩文件的方法
2020/07/30 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
五种Python转义表示法
2020/11/27 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
地理科学专业毕业生求职信
2013/10/15 职场文书
化学教师自荐信范文
2013/12/28 职场文书
丧事主持词大全
2014/04/02 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL
用Python实现屏幕截图详解
2022/01/22 Python
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS