如何基于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 heapq使用详解及实例代码
Jan 25 Python
python实现媒体播放器功能
Feb 11 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
Python面向对象类的继承实例详解
Jun 27 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
python如何将多个PDF进行合并
Aug 13 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
Python根据指定文件生成XML的方法
Jun 29 Python
Python快速优雅的批量修改Word文档样式
May 20 Python
Python import模块的缓存问题解决方案
Jun 02 Python
Python中22个万用公式的小结
Jul 21 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
JavaScript File分段上传
2016/03/10 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
angular仿支付宝密码框输入效果
2017/03/25 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python实现12306火车票查询器
2017/04/20 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python3实现名片管理系统
2020/11/29 Python
Django 内置权限扩展案例详解
2019/03/04 Python
python实现AES加密解密
2019/03/28 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
新书吧创业计划书
2014/01/31 职场文书
入学申请自荐信范文
2014/02/26 职场文书
医院保洁服务方案
2014/06/11 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
民主生活会主持词
2015/07/01 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript