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入门教程
Apr 03 Python
简单上手Python中装饰器的使用
Jul 12 Python
python基础之入门必看操作
Jul 26 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
用python实现k近邻算法的示例代码
Sep 06 Python
在python中bool函数的取值方法
Nov 01 Python
Python中Numpy ndarray的使用详解
May 24 Python
Python代码太长换行的实现
Jul 05 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
详细介绍pandas的DataFrame的append方法使用
Jul 31 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 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 Smarty初体验二 获取配置信息
2011/08/08 PHP
php 字符串替换的方法
2012/01/10 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
python删除列表中重复记录的方法
2015/04/28 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
Django values()和value_list()的使用
2020/03/31 Python
浅析Python中字符串的intern机制
2020/10/03 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
有关打架的检讨书
2014/01/25 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
五一活动标语
2014/06/30 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
2016新年感言
2015/08/03 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
nginx中proxy_pass各种用法详解
2021/11/07 Servers
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技