如何基于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来使用七牛云存储的方法详解
Aug 07 Python
如何在Python中编写并发程序
Feb 27 Python
python编写分类决策树的代码
Dec 21 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
详解python Todo清单实战
Nov 01 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
python顺序执行多个py文件的方法
Jun 29 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
详解python with 上下文管理器
Sep 02 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生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
Python之PyUnit单元测试实例
2014/10/11 Python
Python进程间通信用法实例
2015/06/04 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Django中FilePathField字段的用法
2020/05/21 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
Prototype如何更新局部页面
2013/03/03 面试题
会计实习自我鉴定
2013/12/04 职场文书
护士进修自我鉴定
2014/02/07 职场文书
小学社会实践活动总结
2014/07/03 职场文书
档案工作汇报材料
2014/08/21 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
综合测评个人总结
2015/03/03 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
Elasticsearch 基本查询和组合查询
2022/04/19 Python