如何基于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爬虫框架talonspider简单介绍
Jun 09 Python
python处理按钮消息的实例详解
Jul 11 Python
基于Django用户认证系统详解
Feb 21 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
python怎么自定义捕获错误
Jun 29 Python
Python库安装速度过慢解决方案
Jul 14 Python
2021年最新用于图像处理的Python库总结
Jun 15 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下安装PHP MSSQL扩展教程
2014/10/24 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
封装获取dom元素的简单实例
2016/07/08 Javascript
js定时器实例分享
2016/12/20 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
pandas中Timestamp类用法详解
2017/12/11 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
python opencv进行图像拼接
2020/03/27 Python
python推导式的使用方法实例
2021/02/28 Python
前台文员的岗位职责
2013/11/14 职场文书
白酒市场营销方案
2014/02/25 职场文书
班主任寄语大全
2014/04/04 职场文书
老公保证书
2015/01/17 职场文书
爱的教育观后感
2015/06/17 职场文书
军训结束新闻稿
2015/07/17 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
vue修饰符.capture和.self的区别
2022/04/22 Vue.js
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS