python下有个小而美的测试代码片段时间的模块timeit,使用方法如下:
比如: “-“.join(str(n) for n in range(100))语句执行3趟,每趟10000次的时间统计如下测试:
一、 终端命令行方式:
python -m timeit -n 10000 -r 3 -v ‘”-“.join(str(n) for n in range(100))’
raw times: 0.345 0.351 0.329
10000 loops, best of 3: 32.9 usec per loop
每次执行了10000次,共执行3次,最好的1次,平均每loop是32.9 usec(32.9微秒,10000 loops,best of 3的意思是一共repeat了3次,每一次10000 loops,取最好的那一次来平均)。32.9 usec就是这一行python表达式的执行时间。
二、python模块内方式:
>>> import timeit
>>> timeit.timeit(‘”-“.join(str(n) for n in range(100))’, number = 10000)
0.3615691661834717
>>> timeit.repeat(‘”-“.join(str(n) for n in range(100))’, number = 10000, repeat=3)[0.37982702255249023, 0.3650989532470703, 0.3783681392669678]
三、jupyter note使用方式
%timeit -n 1000 -r 3 “-“.join(str(n) for n in range(100))
附录资料:
1. 命令行界面
命令格式: python -m timeit [-n N] [-r N] [-u U] [-s S] [-t] [-c] [-h] [语句 ...]
参数:
-n:执行次数 -r:计时器重复次数 -s:执行环境配置(通常该语句只被执行一次) -v:打印原始时间 -h:帮助
2. 多行语句执行方式(注意空格)
python -m timeit ‘try:’ ‘ str.__bool__’ ‘except AttributeError:’ ‘ pass’
1000000 loops, best of 3: 1.2 usec per loop