如何基于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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
使用python实现画AR模型时序图
Nov 20 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
python列表的逆序遍历实现
Apr 20 Python
Python接口测试数据库封装实现原理
May 09 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
python实现按日期归档文件
Jan 30 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中数据类型转换的三种方式
2015/04/02 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
Vue实现简易计算器
2020/02/25 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python迭代和迭代器详解
2016/11/10 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
kali中python版本的切换方法
2019/07/11 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
实习生单位鉴定意见
2013/12/04 职场文书
学校运动会报道稿
2014/09/23 职场文书
党员评议自我评价
2015/03/03 职场文书