如何基于python测量代码运行时间


Posted in Python onDecember 25, 2019

这篇文章主要介绍了如何基于python测量代码运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Python 社区有句俗语: “python自己带着电池” ,别自己写计时框架。 Python3.2具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间。

timeit 模块:

timeit 模块定义了接受两个参数的 Timer 类。两个参数都是字符串。 第一个参数是你要计时的语句或者函数。 传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入语句。 从内部讲, timeit 构建起一个独立的虚拟环境, 手工地执行建立语句,然后手工地编译和执行被计时语句。

一旦有了 Timer 对象,最简单的事就是调用 timeit(),它接受一个参数为每个测试中调用被计时语句的次数,默认为一百万次;返回所耗费的秒数。

Timer 对象的另一个主要方法是 repeat(), 它接受两个可选参数。 第一个参数是重复整个测试的次数,第二个参数是每个测试中调用被计时语句的次数。 两个参数都是可选的,它们的默认值分别是 3 和 1000000。 repeat() 方法返回以秒记录的每个测试循环的耗时列表。Python 有一个方便的 min 函数可以把输入的列表返回成最小值,如:
min(t.repeat(3, 1000000))

你可以在命令行使用 timeit 模块来测试一个已存在的 Python 程序,而不需要修改代码。

具体可参见文档: http://docs.python.org/library/timeit.html

1、程序代码

def print_func_time(function):
'''
计算程序运行时间
:param function:
:return:
'''

@wraps(function)
def func_time(*args, **kwargs):
t0 = time.clock()
result = function(*args, **kwargs)
t1 = time.clock()
print("Total running time: %s s" % (str(t1 - t0)))
return result

return func_time

2、使用print_func_time

@print_func_time
def test():
print(123)
test()

3、控制台输出程序运行时间

123
Total running time: 2.233830763170168e-05 s

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python常见数制转换实例分析
May 09 Python
Python下载懒人图库JavaScript特效
May 28 Python
Python IDLE入门简介
Dec 08 Python
Python3处理HTTP请求的实例
May 10 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
django 通过URL访问上传的文件方法
Jul 28 Python
python多线程同步实例教程
Aug 11 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
matplotlib制作雷达图报错ValueError的实现
Jan 05 Python
Django+Celery实现定时任务的示例
Jun 23 Python
python字典setdefault方法和get方法使用实例
Dec 25 #Python
Python 内置变量和函数的查看及说明介绍
Dec 25 #Python
python @propert装饰器使用方法原理解析
Dec 25 #Python
python 消除 futureWarning问题的解决
Dec 25 #Python
提升python处理速度原理及方法实例
Dec 25 #Python
python pip安装包出现:Failed building wheel for xxx错误的解决
Dec 25 #Python
将python包发布到PyPI和制作whl文件方式
Dec 25 #Python
You might like
Linux下编译redis和phpredis的方法
2016/04/07 PHP
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
python实现百度关键词排名查询
2014/03/30 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
django Admin文档生成器使用详解
2019/07/22 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
文明教师事迹材料
2014/01/16 职场文书
卫生巾广告词
2014/03/18 职场文书
升国旗仪式主持词
2014/03/19 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
创业女性典型材料
2014/05/02 职场文书
医院营销工作计划
2015/01/16 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电