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多线程编程(六):可重入锁RLock
Apr 05 Python
python实时分析日志的一个小脚本分享
May 07 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
12个步骤教你理解Python装饰器
Jul 01 Python
python读取指定字节长度的文本方法
Aug 27 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
python的help函数如何使用
Jun 11 Python
关于的python五子棋的算法
May 02 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 23 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
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
python正则分析nginx的访问日志
2017/01/17 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python生成器推导式用法简单示例
2019/10/08 Python
python模拟实现斗地主发牌
2020/01/07 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
Python创建自己的加密货币的示例
2021/03/01 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
俄罗斯女装店:12storeez
2019/10/25 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
自我评价范文点评
2013/12/04 职场文书
高级护理专业毕业生推荐信
2013/12/25 职场文书
2016中秋节问候语
2015/11/11 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
python异常中else的实例用法
2021/06/15 Python
详解Python中的进程和线程
2021/06/23 Python
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL