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中使用全局日志时需要注意的问题
May 06 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
PYTHON基础-时间日期处理小结
May 05 Python
python3 flask实现文件上传功能
Mar 20 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
python实现控制COM口的示例
Jul 03 Python
Flask配置Cors跨域的实现
Jul 12 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Pycharm 解决自动格式化冲突的设置操作
Jan 15 Python
python 实现图片裁剪小工具
Feb 02 Python
python 下划线的多种应用场景总结
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
各种战术和打法的原创者
2020/03/04 星际争霸
PHP脚本的10个技巧(3)
2006/10/09 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python pip配置国内源的方法
2020/02/14 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
员工自我鉴定
2013/10/09 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
论文诚信承诺书
2014/05/23 职场文书
应届生自荐信
2014/06/30 职场文书
工作说明书格式
2014/07/29 职场文书
三严三实对照检查材料
2014/08/25 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书