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中运行并行任务技巧
Feb 26 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
python顺序执行多个py文件的方法
Jun 29 Python
python hough变换检测直线的实现方法
Jul 12 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
利用python清除移动硬盘中的临时文件
Oct 28 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
js 单引号 传递方法
2009/06/22 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
python解析多层json操作示例
2019/12/30 Python
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
车间调度岗位职责
2013/11/30 职场文书
实习鉴定评语
2014/01/19 职场文书
见习期自我鉴定
2014/01/31 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
工商干部先进事迹
2014/05/14 职场文书
关于爱国的标语
2014/06/24 职场文书
银行转正自我鉴定
2014/09/29 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
离职报告格式
2014/11/04 职场文书
销售内勤岗位职责
2015/02/10 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
给下属加薪申请报告
2015/05/15 职场文书
爱的教育读书笔记
2015/06/26 职场文书
2016年安全月活动总结
2016/04/06 职场文书
导游词之吉林吉塔
2019/11/11 职场文书