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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
python获取图片颜色信息的方法
Mar 18 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
500行python代码实现飞机大战
Apr 24 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
python实现猜拳游戏项目
Nov 30 Python
python制作微博图片爬取工具
Jan 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
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
学习python (1)
2006/10/31 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
python实现图书管理系统
2018/03/12 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
家长会学生家长演讲稿
2013/12/29 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
顶碗少年教学反思
2014/02/21 职场文书
个人承诺书怎么写
2014/05/24 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
电子商务实训报告总结
2014/11/05 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis