python - timeit 时间模块


Posted in Python onApril 06, 2021

1. timeit.timeit(stmt=‘pass', setup=‘pass', timer=<default timer>, number=default_number)

  • timeit() 函数有四个参数,每个参数都是关键字参数,都有默认值。
  • stmt:传入需要测试时间的代码,可以直接传入代码表达式或单个变量,也可以传入函数。传入函数时要在函数名后面加上小括号,让函数执行,如 stmt = ‘func()' 。
  • setup:传入 stmt 的运行环境,如 stmt 中使用到的参数、变量,要导入的模块等,如 setup = 'from __main__ import func'。可以写一行语句,也可以写多行语句,写多行语句时用分号隔开。
  • 如果 stmt 和参数 setup 参数不传值,那么就失去了测试的意义,所以这两个参数是必要的。
  • timer: timer参数是当前操作系统的基本时间单位,默认会根据当前运行环境的操作系统自动获取(源码中已经定义),保持默认即可。
  • number:要测试的代码的运行次数,默认1000000(一百万)次,对于耗时的代码,运行太多次会花很多时间,可以自己修改运行次数。

2. timeit.repeat(stmt="pass", setup="pass", timer=default_timer, repeat=default_repeat, number=default_number)

  • repeat()函数有五个参数,每个参数都是关键字参数,都有默认值。参数含义与timer()相同
  • repeat:表示测试要重复几次,可以理解为将相同参数的 timeit() 函数重复执行。最终的结果构成一个列表返回,repeat 默认为3次。

3. class timeit.Timer(stmt=‘pass', setup=‘pass', timer=<timer function>)

  • 计算小段代码执行速度的类,构造函数需要的参数有stmt,setup,timer。
  • 前两个参数的默认值都是pass,timer默认会根据当前运行环境的操作系统自动获取;前两个参数都可以包含多个语句,多个语句间使用分号;或新行隔开
import timeit
def t1():
 li = [i for i in range(100000)]
def t2():
 li = []
 for i in range(100000):
  li += [i]
def t3():
 li = []
 for i in range(100000):
  li.append(i)
def t4():
 li = []
 list(range(100000))
def t5():
 li = []
 for i in range(100000):
  li.extend([i])
def t6():
 li = []
 for i in range(100000):
  li.insert(0,i)

# 方式1:timeit.timeit()
# list_t1 = timeit.timeit('t1()','from __main__ import t1',number=1)
# print("i for i in range(100000): %s" %(list_t1))

# 方式2:timeit.repeat()
# list_t2 = timeit.repeat('t2()','from __main__ import t2',repeat=1,number=1)
# print("li += i: %s" %(str(list_t2)))

# 方式3:timeit.Timer
# timer3 = timeit.Timer('t3()','from __main__ import t3')
# print("li.append(i): %s" %(timer3.timeit(number=1)))

# 直接传入字符串对象
# list_l4 = timeit.timeit('li = [i for i in range(1000)]',number=1)
# print(str(list_l4))

# 传入多个函数对象(;或空行分隔)
list_l5 = timeit.repeat('t4();t5();t6()','from __main__ import t4;from __main__ import t5;from __main__ import t6',repeat=1,number=1)
print(str(list_l5))

以上就是python使用timeit统计运行时间模块的详细内容,更多关于python使用timeit的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Android应用开发中Action bar编写的入门教程
Feb 26 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
Python程序运行原理图文解析
Feb 10 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
python中的tcp示例详解
Dec 09 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
Python函数参数匹配模型通用规则keyword-only参数详解
Jun 10 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
关于Python错误重试方法总结
Jan 03 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
pycharm Tab键设置成4个空格的操作
Feb 26 Python
Python实现机器学习算法的分类
Jun 03 Python
python制作图形界面的2048游戏, 基于tkinter
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 #Python
python删除csv文件的行列
Apr 06 #Python
python使用pygame创建精灵Sprite
python 逐步回归算法
python 通过使用Yolact训练数据集
python生成随机数、随机字符、随机字符串
Apr 06 #Python
You might like
用缓存实现静态页面的测试
2006/12/06 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
php生成微信红包数组的方法
2019/09/05 PHP
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
javascript中clone对象详解
2014/12/03 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
OpenCV实现人脸识别
2017/04/07 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
大学新生入学教育方案
2014/05/16 职场文书
求职自我推荐信
2014/06/25 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
承兑汇票延期证明
2015/06/23 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
MySQL插入数据与查询数据
2022/03/25 MySQL