如何基于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 相关文章推荐
Python3中的真除和Floor除法用法分析
Mar 16 Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
python中的常量和变量代码详解
Jul 25 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 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
php mssql 时间格式问题
2009/01/13 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP chr()函数讲解
2019/02/11 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
python之Socket网络编程详解
2016/09/29 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
python绘制雪景图
2019/12/16 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
安全检查管理制度
2014/02/02 职场文书
临床医师个人自我评价
2014/04/06 职场文书
给孩子的新年寄语
2014/04/08 职场文书
营销与策划实训报告
2014/11/05 职场文书
离婚被告代理词
2015/05/23 职场文书
《观察物体》教学反思
2016/02/17 职场文书