如何基于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中的作用域规则详解
Jan 30 Python
Python使用django获取用户IP地址的方法
May 11 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
Sanic框架应用部署方法详解
Jul 18 Python
Python3 max()函数基础用法
Feb 19 Python
python 将字符串完成特定的向右移动方法
Jun 11 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
Python中关于logging模块的学习笔记
Jun 03 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
如何用Python绘制3D柱形图
Sep 16 Python
Selenium 配置启动项参数的方法
Dec 04 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
页面乱码问题的根源及其分析
2013/08/09 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
微信小程序实现滑动操作代码
2020/04/23 Javascript
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
对pandas中Series的map函数详解
2018/07/25 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
Python如何对XML 解析
2020/06/28 Python
详解python logging日志传输
2020/07/01 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
社区爱国卫生月活动总结
2014/06/30 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
前台岗位职责
2015/02/13 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
爱的教育读书笔记
2015/06/26 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
感谢信
2019/04/11 职场文书
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
python使用shell脚本创建kafka连接器
2022/04/29 Python