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 相关文章推荐
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python实现的单向循环链表功能示例
Nov 10 Python
Python快速排序算法实例分析
Nov 29 Python
python实现xlsx文件分析详解
Jan 02 Python
Python中的Numpy矩阵操作
Aug 12 Python
Python发展简史 Python来历
May 14 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
python 消除 futureWarning问题的解决
Dec 25 Python
python 实现从高分辨图像上抠取图像块
Jan 02 Python
keras 指定程序在某块卡上训练实例
Jun 22 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
Python中如何处理常见报错
Jan 18 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
php桌面中心(三) 修改数据库
2007/03/11 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
详解React 条件渲染
2020/07/08 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
工商管理专业实习生自我鉴定
2013/09/29 职场文书
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
高三生物教学反思
2014/01/25 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
小学运动会加油稿
2015/07/22 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书