如何基于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中的自定义函数学习笔记
Sep 23 Python
Python性能优化技巧
Mar 09 Python
在Python中利用Pandas库处理大数据的简单介绍
Apr 07 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
详解Python发送email的三种方式
Oct 18 Python
Python面向对象思想与应用入门教程【类与对象】
Apr 12 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
Python实现快速排序的方法详解
Oct 25 Python
python创建子类的方法分析
Nov 28 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python高级特性简介
Aug 13 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
php异常处理捕获错误整理
2019/09/23 PHP
模拟select的代码
2011/10/19 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
理解javascript模块化
2016/03/28 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python 字典dict使用介绍
2014/11/30 Python
Python如何获取系统iops示例代码
2016/09/06 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
解决Mac下使用python的坑
2019/08/13 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
CK美国官网:Calvin Klein
2016/08/26 全球购物
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
父亲生日宴会答谢词
2014/01/10 职场文书
小学生校园广播稿
2014/09/28 职场文书
80后婚前协议书范本
2014/10/24 职场文书
师范生教育见习总结
2015/06/23 职场文书
师德师风培训感言
2015/08/03 职场文书
会计主管竞聘书
2015/09/15 职场文书