如何基于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代码的打包与发布详解
Jul 30 Python
Python pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
pycharm重命名文件的方法步骤
Jul 29 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 Python
python中Pyqt5使用Qlabel标签播放视频
Apr 22 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
用PHP实现图象锐化代码
2007/06/14 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
一个实用的php验证码类
2017/07/06 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python实现定时任务
2017/02/08 Python
python实现求最长回文子串长度
2018/01/22 Python
python写入已存在的excel数据实例
2018/05/03 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
优秀的自荐信要注意哪些
2014/01/03 职场文书
城管综合整治方案
2014/05/01 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS