《Python学习手册 第五版》 -第21章 基准测试
前面的章节讲解了函数和迭代的工具,针对一个问题,会有不同额解决办法,不同的解决办法如何评估好坏,可以通过计时测试评估,也就是本章要讲解的内容
本章重点内容:
1、自己编写的计时模块
2、用timeit计时
开始前说明一点:代码编写,由之前的IDLE平台调整为JuptyerLab平台,为什么?可以自行百度Jupyter,
同时也是因为,从本章开始,会有大量的代码编写,为了方便保存以及修改调整
接下来,针对以上重点内容,进行详细讲解
1、自己编写的计时模块
通过以下代码,可以容易实现对于一个函数,多次调用的花费总时间,代码如下:
计时函数:
函数的调用:中间红底的部分,可以忽略
代码的计时,会随着时间和电脑平台的不同有所变化
上述的计时方式有一定的局限性:被测试函数,不支持关键字参数,硬编码了重复次数,额外加入了range的时间等
下面针对以上函数进行优化调整,具体代码如下:
针对以上三个不同函数的调用:
上面是用besttotal函数比较了一个函数执行1000次,执行50个1000次中最短的时间,也可以用来比较不同函数执行同样次数的时间,例如创建列表不同函数的时间比较,具体代码示例如下:
2、用timeit计时
第一部分是我们自己编写的函数来对比不同的计时测试,其实在Python标准库中也有相似的模块,来方便调用,timeit模块,它会更灵活
timeit的基础用法,timeit模块中有repeat调用,可以用来运行若干组相同测试,并返回一个列表,具体代码示例如下:
这个函数可以在大型测试中进行调用使用,如果对此感兴趣,可以自行查看标准库使用手册在此不在展开
以上,就是本章的重点内容,下章再见!
《Python学习手册 第五版》 每章时间规划及完成进度:
2019.11.25-2019.12.01 第01章,已完成:《Python学习手册 第五版》 -第1章 问答环节
2019.12.02-2019.12.08 第02章,已完成:《Python学习手册 第五版》 -第2章 Python如何运行程序
2019.12.09-2019.12.15 第03章,已完成:《Python学习手册 第五版》 -第3章 你应如何运行Python程序
2019.12.16-2019.12.22 第04章,已完成:《Python学习手册 第五版》 -第4章 介绍Python对象类型
2019.12.23-2019.12.29 第05章,已完成:《Python学习手册 第五版》 -第5章 数值类型
2019.12.30-2020.01.05 第06章,已完成:《Python学习手册 第五版》 -第6章 动态类型
2020.01.06-2020.01.12 第07章,已完成:《Python学习手册 第五版》 -第7章 字符串基础
2020.01.12-2020.01.19 第08章,已完成:《Python学习手册 第五版》 -第8章 列表与字典
2020.01.20-2020.01.26 第09章,已完成:《Python学习手册 第五版》 -第9章 元组、文件与其他核心类型
2020.01.27-2020.02.02 第10章,已完成:《Python学习手册 第五版》 -第10章 Python语句简介
2020.02.03-2020.02.09 第11章,已完成:《Python学习手册 第五版》 -第11章 赋值、表达式和打印
2020.02.10-2020.02.16 第12章,已完成:《Python学习手册 第五版》 -第12章 if测试和语法规则
2020.02.17-2020.02.23 第13章,已完成:《Python学习手册 第五版》 -第13章 while循环和for循环
2020.02.24-2020.03.01 第14章,已完成:《Python学习手册 第五版》 -第14章 迭代和推导
2020.03.02-2020.03.08 第15章,已完成:《Python学习手册 第五版》 -第15章 文档
2020.03.09-2020.03.15 第16章,已完成:《Python学习手册 第五版》 -第16章 函数基础
2020.03.16-2020.03.22 第17章,已完成:《Python学习手册 第五版》 -第17章 作用域
2020.03.23-2020.03.29 第18章,已完成:《Python学习手册 第五版》 -第18章 参数
2020.03.30-2020.04.05 第19章,已完成:《Python学习手册 第五版》 -第19章 函数的高级话题
2020.04.06-2020.04.12 第20章,已完成:《Python学习手册 第五版》 -第20章 推导和生成
2020.04.13-2020.04.19 第21章,已完成
2020.04.20-2020.04.26 第22章,未完成
2020.04.27-2020.05.03 第23章,未完成
以下链接,可以供你了解这个学习笔记的所有章节最新进度