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中使用HTMLParser解析html实例
Feb 08 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
python发送邮件脚本
May 22 Python
python多线程并发让两个LED同时亮的方法
Feb 18 Python
python pytest进阶之fixture详解
Jun 27 Python
Python PO设计模式的具体使用
Aug 16 Python
Python简单实现区域生长方式
Jan 16 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
Python实现aes加密解密多种方法解析
May 15 Python
Python实现疫情通定时自动填写功能(附代码)
May 27 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
递归列出所有文件和目录
2006/10/09 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
python爬虫 requests-html的使用
2020/11/30 Python
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
安全生产月标语
2014/10/07 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
市场部经理岗位职责
2015/02/02 职场文书
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫