timeit模块学习笔记
本帖最后由 yoyo2 于 2020-9-8 14:37 编辑学time模块的过程中,一直不太敢相信计时这么麻烦程序要自己写?作业写到后面才看到果然存在timeit模块解决计时问题
按照44节作业要求
1、使用 perf_counter() 和 process_time() 作为计时器。
2、增加一个 set_timer() 方法,可以设置默认计时器
3、可以统计一个函数运行若干次的时间
timeit都可以完成:“timeit 模块提供了测量 Python 小段代码执行时间的方法。它既可以在命令行界面直接使用,也可以通过导入模块进行调用。”
模块定义了三个实用函数和一个公共类(还不太了解“模块”),下面仅学习导入模块怎么用,因为我命令行报错不懂啥问题
函数:
1、timeit.timeit(stmt= 'pass',setup = 'pass',timer=<default_timer,number=1000000>)计算stmt循环number次的时间note:test是作业里的函数名
>>> timeit.timeit(stmt = test,number = 100000)
0.0106982000000073192、timeit.repeat(stmt= 'pass',setup = 'pass',timer=<default_timer,repeat=3,number=1000000>)只多了一个repeat,返回一个执行repeat次计时结果的列表
timeit.repeat(stmt = test,repeat = 5,number = 100000)
[0.010446000000001732, 0.010464500000011867, 0.010592999999971653, 0.011235899999974208, 0.01065249999999196
3、timeit.default_timer()设置默认计时器,默认是time.perf_counter()
公共类:
timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
类下方法:
-timeit(number=100000)设置循环次数,搞不懂,前面函数都可以做了,而且这名字
-repeat(repeat = 3,number = 1000000)重复调用 timeit()
-print_exc(file=None) 输出计时代码的回溯(Traceback)
典型用法(前提已经from timeit import *)
t = Timer(...) # outside the try/except
try:
t.timeit(...) # or t.repeat(...)
except Exception:
t.print_exc()
标准回溯的优点是在编译模板中,源语句行会被显示出来。可选的 file 参数指定将回溯发送的位置,默认是发送到 sys.stderr
页:
[1]