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操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
python实现简单的TCP代理服务器
Oct 08 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
谈一谈基于python的面向对象编程基础
May 21 Python
python的常见矩阵运算(小结)
Aug 07 Python
python向图片里添加文字
Nov 26 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
Python OpenCV实现测量图片物体宽度
May 27 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 Python
用python制作个音乐下载器
Jan 30 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(3)
2006/10/09 PHP
PHP4中session登录页面的应用
2008/07/25 PHP
php adodb连接不同数据库
2009/03/19 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
信电学院毕业生自荐书
2014/05/24 职场文书
公司董事长岗位职责
2014/06/08 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
红楼梦读书笔记
2015/06/25 职场文书
2016八一建军节慰问信
2015/11/30 职场文书