python timeit模块_如何在Python中使用timeit模块?
文 | 菊子皮(转载请注明出处)
关注公众号:
AIAS编程有道
环境:Python 3.7,VS Code
timeit模块使用
有时候需要测试创建某种变量而花费的时间、有时候需要测试某个函数的运行的时间,对于简单的Python程序使用Python自带timeit模块是不错的选择。
这里也只介绍经常使用的几个方法,更多内容可参考官方文档。Python3中的timeit模块可以用来测试小段代码的运行时间。其中主要通过两个函数来实现:timeit和repeat。
timeit. timeit(
stmt=‘pass’
,
setup=‘pass’
,
timer=
,
number=1000000
,
globals=None
)
使用给定语句、
setup
代码和
timer
函数创建一个
Timer
实例,并执行
number
次其
timeit()
方法。可选的
globals
参数指定用于执行代码的命名空间。
timeit.repeat(
stmt=‘pass’
,
setup=‘pass’
,
timer=
,
repeat=5
,
number=1000000
,
globals=None
)
使用给定语句、
setup
代码和
timer
函数创建一个
Timer
实例,并使用给定的
repeat
计数和
number
执行运行其
repeat()
方法。可选的
globals
参数指定用于执行代码的命名空间。
参数说明:
stmt:用于传入要测试时间的代码,可以直接接受字符串的表达式,也可以接受单个变量,也可以接受函数。传入函数时要把函数申明在当前文件中,然后在 stmt = ‘func()’ 执行函数,然后使用 setup = ‘from
main
import func’
setup:传入stmt的运行环境,比如stmt中使用到的参数、变量,要导入的模块等。可以写一行语句,也可以写多行语句,写多行语句时要用分号;隔开语句。
number:要测试的代码的运行次数,默认100000次,对于耗时的代码,运行太多次会比较慢,此时建议自己修改一下运行次数
repeat:指测试要重复几次,每次的结果构成列表返回,默认5次。
使用案例:
# <1>
print(timeit.timeit(stmt='list(i**2 for i in normal_list)', setup='normal_list=range(10000)', number=10))
# 0.0857056 结果也会与计算机性能有关
# <2>
print(timeit.repeat(stmt='list(i**2 for i in normal_list)', setup='normal_list=range(10000)', repeat=2, number=10))
# [0.08216990000000002, 0.055868999999999974]
# <3> setup 为复合语句
print(timeit.timeit(stmt='list(i**2 for i in normal_list)', setup='a=10000;normal_list=range(a)', number=10))
# 0.0660696
# <4>
print(timeit.repeat(stmt='list(i**2 for i in normal_list)', setup='a=10000;normal_list=range(a)', repeat=2, number=10))
# [0.06270019999999998, 0.054296299999999964]
# <5>
def func():
normal_list = range(10000)
L = [i**2 for i in normal_list]
# stmt为函数
print(timeit.timeit("func()", setup="from __main__ import func", number=10))
# 0.056916100000000025
# <6>
print(timeit.repeat("func()", setup="from __main__ import func", repeat=3, number=10))
# [0.057099300000000075, 0.05018290000000003, 0.04987839999999999]
程序说明:
<1> 运行语句
list(i**2 for i in normal_list)
其中语句的参数为
normal_list=range(10000)
一个10次所使用的时间。
<2> 在<1>的基础上,重复运行2次,每次运行的时间都放在一个列表中
<3> 提供参数的语句可以是多个
<4> 在<3>的基础上,重复运行2次,每次运行的时间都放在一个列表中
<5> 使用自定义函数情况
<6> 在<5>的基础上,重复运行3次,每次运行的时间都放在一个列表中
python timeit模块_如何在Python中使用timeit模块?相关推荐
- python 线性回归模型_如何在Python中建立和训练线性和逻辑回归ML模型
python 线性回归模型 Linear regression and logistic regression are two of the most popular machine learning ...
- python 概率分布函数_如何在Python中实现这五类强大的概率分布
匿名用户 1级 2016-04-25 回答 首页 所有文章 观点与动态 基础知识 系列教程 实践项目 工具与框架应用 工具资源 伯乐在线 > Python - 伯乐在线 > 所有文章 &g ...
- unbantu上python安装步骤_如何在Ubuntu中安装Python 3.6?
Python是增长最快的主要通用编程语言.原因有很多,比如它的可读性和灵活性,易于学习和使用,可靠和高效. 有两个主要的Python版本被使用- 2和3 (Python的现在和未来);前者将看不到新的 ...
- python进程暂停_如何在Python中暂停多进程?
我希望用户能够在怎么开始的实现它?在 我的代码是:# -*- coding: utf-8 -*- from PySide import QtCore, QtGui from Ui_MainWindow ...
- python 获取当前目录_如何在Python中获取当前的工作目录?
python 获取当前目录 To get the current working directory in Python, there is a library function getcwd() i ...
- python 拟合正态分布_如何在Python中拟合双高斯分布?
我试图使用Python获得数据(link)的双高斯分布.原始数据的格式为: 对于给定的数据,我想获得图中所示峰值的两个高斯分布.我用以下代码(source)进行了尝试:from sklearn imp ...
- python mqtt库_如何在 Python 中使用 MQTT
Python 是一种广泛使用的解释型.高级编程.通用型编程语言.Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).Python 让开发者能 ...
- win10系统64位安装python什么版本_如何在win10中安装Python
本文主要讲解win10如何安装python,希望对初学的小伙伴有帮助.环境:win 10 64位操作系统1.python下载https://www.python.org/downloads/2.x和3 ...
- eclipse配置python开发环境_如何在Eclipse中配置python开发环境
展开全部 步骤1: 下载用于在2113Eclipse中开发Python的插件PyDev. 步骤2: 解压5261python.将解压后的features和plugins文件4102夹中的1653内容拷 ...
最新文章
- discuz7记录下url静态化的apache2.2配置
- mpls企业组网怎么样?
- linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...
- c 语言栈,C语言栈
- 这款耳机堪比千元级的AirPods
- MessageBox消息框 1126
- php 创建自定义文件夹,Laravel 自定命令以及生成文件的例子
- CAD无法打印的问题解决办法
- matlab文本文件操作
- Java 实现批量静默打印PDF文件
- ipa-server
- 时值年末,年度CSDN小峯的回顾过去的2020年(推荐)
- vue-awesome-swiper 设置autoHeight,最后不满一页也占了一页
- 微信红包封面小程序源码-逢年过节非常火爆
- 企业使用虚拟码号的优势!
- abaqus 复合材料edit composite layup中报错:没有指定坐标系
- 一般3d模型代做多少钱_3d打印一个模型多少钱
- Cocos Creator一步一步实现重力球游戏,附完整代码
- MacOS 系统版本更新Monterey12.3.1版之后l2tp无法正常访问
- 专访胡润:中国富豪正变得透明