如何基于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 03 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
Nov 07 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
python监控进程脚本
Apr 12 Python
python 判断网络连通的实现方法
Apr 22 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
Python变量类型知识点总结
Feb 18 Python
详解Python3注释知识点
Feb 19 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
python+opencv实现移动侦测(帧差法)
Mar 20 Python
tensorflow常用函数API介绍
Apr 19 Python
Python机器学习应用之基于线性判别模型的分类篇详解
Jan 18 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编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php返回json数据函数实例
2014/10/09 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
Javascript this 的一些学习总结
2012/08/02 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
学生信息管理系统python版
2018/10/17 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
Python实战购物车项目的实现参考
2019/02/20 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
自荐信模版
2013/10/24 职场文书
自荐书格式
2013/12/01 职场文书
安全生产月演讲稿
2014/05/09 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2014年团工作总结
2014/11/27 职场文书
大学军训决心书
2015/02/05 职场文书
优质服务标语口号
2015/12/26 职场文书
关于感恩的作文
2019/08/26 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python