如何使用timeit模块
2020-04-01 18:35
92 查看
文章目录
功能介绍
timeit模块可以用来测试小段代码的运行时间
官方使用说明:
Tool for measuring execution time of small code snippets.
源码
def timeit(stmt="pass", setup="pass", timer=default_timer, number=default_number, globals=None): """Convenience function to create Timer object and call timeit method.""" return Timer(stmt, setup, timer, globals).timeit(number) def repeat(stmt="pass", setup="pass", timer=default_timer, repeat=default_repeat, number=default_number, globals=None): """Convenience function to create Timer object and call repeat method.""" return Timer(stmt, setup, timer, globals).repeat(repeat, number)
官方参数说明
default_number = 1000000 default_repeat = 5 default_timer = time.perf_counter _globals = globals
参数说明
stmt:用于传入要测试时间的代码,可以直接接受字符串的表达式,也可以接受单个变量,也可以接受函数。传入函数时要把函数申明在当前文件中,然后在 stmt = ‘func()’ 执行函数,然后使用 setup = ‘from __main__ import func’ setup:传入stmt的运行环境,比如stmt中使用到的参数、变量,要导入的模块等。可以写一行语句,也可以写多行语句,写多行语句时要用分号;隔开语句。 number:需要测试代码的运行次数,默认100w次。 repeat:指测试要重复几次,每次的结果构成列表返回,默认5次。
示例
demo01
分别以timeit,repeat为例说明:
import timeit print(timeit.timeit(stmt= 'list(i**2 for i in normal_list)',setup = 'normal_list=range(10000)',number=10)) #0.3437936799875755 print(timeit.repeat(stmt= 'list(i**2 for i in normal_list)', setup='normal_list=range(10000)',repeat=2,number=10)) #[0.33649995761778984, 0.3394490767789293]
需要测试的语句:list(i**2 for i in normal_list)
setup设置变量:normal_list=range(10000)
number=10:执行10次得到的时间
repeat=2:每轮执行10次,执行两轮,返回结果为列表。列表元素为两轮的结果。
demo2
#setup 为复合语句 print(timeit.timeit(stmt= 'list(i**2 for i in normal_list)',setup = 'a=10000;normal_list=range(a)',number=10)) #0.33272367424748817 print(timeit.repeat(stmt= 'list(i**2 for i in normal_list)', setup='a=10000;normal_list=range(a)',repeat=2,number=10)) #[0.3323106610316342, 0.3356380911962764]
复合语句使用
;隔开
demo3
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.12436874684622312 print(timeit.repeat("func()", setup="from __main__ import func",repeat=2,number=10)) #[0.12142133435126468, 0.12079555675148601]
from main import func:从当前模块导入此函数
实战
使用timeit测试算法执行时间
此博文引用:https://www.cnblogs.com/zhaoshizi/p/9221574.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 如何使用python timeit模块使用实践
- 使用 timeit 模块
- 使用 timeit 模块
- 使用timeit模块 测试两种方式生成列表的所用的时间
- python timeit模块的使用(附加append、insert、extend用法)
- Python timeit模块的使用实践
- 使用Python的timeit模块
- 在ASP.NET中如何使用ASP.NET AJAX实时搜索功能控件--RealTimeSearchMonitor
- struts中多个模块时,使用多个struts-config.xml文件之间时如何切换的!
- python中计时工具timeit模块的基本用法
- 点点博客的发布模块,如何使用?
- 如何高效使用和管理Bitmap--图片缓存管理模块的设计与实现
- OpenERP 7.0 如何使用本地 addons 而跳过使用官网模块
- 笔记:timeit使用
- node.js 第三方模块如何安装(使用npm)及介绍
- 飞飞影视系统 发布模块如何使用?
- 如何使用Python模块 html5lib
- ruby如何使用require加载从外部定义的类或模块
- 如何使用和制作 Python 安装模块(setup.py)
- 如何高效使用和管理Bitmap--图片缓存管理模块的设计与实现