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中endswith()函数的基本使用
Apr 07 Python
python验证码识别的实例详解
Sep 09 Python
详解python函数传参是传值还是传引用
Jan 16 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
python有几个版本
Jun 17 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
pytorch fine-tune 预训练的模型操作
Jun 03 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
jquery插件制作教程 txtHover
2012/08/17 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
django如何连接已存在数据的数据库
2018/08/14 Python
python try 异常处理(史上最全)
2019/03/07 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
询价采购方案
2014/06/09 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
java实现对Hadoop的操作
2021/07/01 Java/Android
python游戏开发之pygame实现接球小游戏
2022/04/22 Python