如何基于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将xml xsl文件生成html文件存储示例讲解
Dec 03 Python
深入学习python的yield和generator
Mar 10 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
Python编程实现蚁群算法详解
Nov 13 Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python实现LRU热点缓存及原理
Oct 29 Python
Python socket处理client连接过程解析
Mar 18 Python
安装pytorch时报sslerror错误的解决方案
May 17 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自定义函数返回多个值
2006/11/26 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
vue-router 组件复用问题详解
2018/01/22 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
20个常用Python运维库和模块
2018/02/12 Python
python 命令行传入参数实现解析
2019/08/30 Python
python实现复制文件到指定目录
2019/10/16 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
python中tab键是什么意思
2020/06/18 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
销售经理工作职责范文
2013/12/03 职场文书
医院办公室主任职责
2013/12/29 职场文书
班组长竞聘书
2014/03/31 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
导游词之无锡唐城
2019/12/12 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android