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 相关文章推荐
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
python操作kafka实践的示例代码
Jun 19 Python
django云端留言板实例详解
Jul 22 Python
django基础学习之send_mail功能
Aug 07 Python
python实现BP神经网络回归预测模型
Aug 09 Python
python查看数据类型的方法
Oct 12 Python
python 定义类时,实现内部方法的互相调用
Dec 25 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
用 python 进行微信好友信息分析
Nov 28 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
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Windows下安装Scrapy
2018/10/17 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
python Matplotlib模块的使用
2020/09/16 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
高中生校园生活自我评价
2013/09/19 职场文书
公司投资建议书
2014/05/16 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript