如何基于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 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
跟老齐学Python之再深点,更懂list
Sep 20 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
Django 内置权限扩展案例详解
Mar 04 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
Python之变量类型和if判断方式
May 05 Python
python中加背景音乐如何操作
Jul 19 Python
Python截图并保存的具体实例
Jan 14 Python
python自动化调用百度api解决验证码
Apr 13 Python
PyTorch 如何自动计算梯度
May 23 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/12/21 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
Python计算三维矢量幅度的方法
2015/06/15 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
Python实现序列化及csv文件读取
2020/01/19 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
大学生涯自我鉴定
2014/01/16 职场文书
有关打架的检讨书
2014/01/25 职场文书
白酒代理协议书范本
2014/10/26 职场文书
关于的python五子棋的算法
2022/05/02 Python
box-shadow单边阴影的实现
2023/05/21 HTML / CSS