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用ConfigObj读写配置文件的实现代码
Mar 04 Python
python的类方法和静态方法
Dec 13 Python
python开发中module模块用法实例分析
Nov 12 Python
简单谈谈python的反射机制
Jun 28 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
python实现遍历文件夹修改文件后缀
Aug 28 Python
Python八皇后问题解答过程详解
Jul 29 Python
python 实现视频 图像帧提取
Dec 10 Python
Python3 集合set入门基础
Feb 10 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
python解释器安装教程的方法步骤
Jul 02 Python
python else语句在循环中的运用详解
Jul 06 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
php二维数组转成字符串示例
2014/02/17 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
一个加载js文件的小脚本
2007/06/28 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
python在指定目录下查找gif文件的方法
2015/05/04 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
python实现微信自动回复功能
2018/04/11 Python
python 输出所有大小写字母的方法
2019/01/02 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
市场部专员岗位职责
2013/11/30 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
旷课检讨书500字
2014/10/14 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
Go遍历struct,map,slice的实现
2021/06/13 Golang