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导入模块时遇到的错误分析
Aug 30 Python
python 列表删除所有指定元素的方法
Apr 19 Python
Python3处理HTTP请求的实例
May 10 Python
python 批量修改/替换数据的实例
Jul 25 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
解决python有时候import不了当前的包问题
Aug 28 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
Python爬虫制作翻译程序的示例代码
Feb 22 Python
pytorch 使用半精度模型部署的操作
May 24 Python
在Python中如何使用yield
Jun 07 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
无线电的诞生过程
2021/03/01 无线电
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP内置加密函数详解
2016/11/20 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
Vue.js表单控件实践
2016/10/27 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
python局域网ip扫描示例分享
2014/04/03 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
flask-restful使用总结
2018/12/04 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
会计师职业生涯规划范文
2014/02/18 职场文书
高校教师岗位职责
2014/03/18 职场文书
2014年德育工作总结
2014/11/20 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL