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 threading多线程编程实例
Sep 18 Python
python使用pil生成缩略图的方法
Mar 26 Python
python写入中英文字符串到文件的方法
May 06 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
python爬取51job中hr的邮箱
May 14 Python
Python中规范定义命名空间的一些建议
Jun 04 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
python文件特定行插入和替换实例详解
Jul 12 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
Python判断变量是否是None写法代码实例
Oct 09 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 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
input file获得文件根目录简单实现
2013/04/26 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
smarty简单入门实例
2014/11/28 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php内嵌函数用法实例
2015/03/20 PHP
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
js实现分页功能
2017/05/24 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
python类和函数中使用静态变量的方法
2015/05/09 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
Python环境变量设置方法
2016/08/28 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
python selenium xpath定位操作
2020/09/01 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
eBay德国站:eBay.de
2017/09/14 全球购物
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
大学生的四年学习自我评价
2013/12/13 职场文书
高中地理教学反思
2014/01/29 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书