Python中timeit模块的-s选项是什么?
来自《Python Cookbook》的内容
python timeit.py -s"import random" -s"x=range(100000); random.shuffle(x)" "sorted(x)"
10 loops, best of 3: 152 msec per loop
这个-s
标志是干什么的呢?我在网上、Python的帮助文档和Stack Overflow上都查过,但没找到一个好的解释。谢谢!
2 个回答
1
重新看了一下文档,发现“最初只执行一次”这个说法可能不够清楚(也就是说,文档里并没有说明为什么这样做是个好功能)。
使用-s
设置的好处在于,这些代码是在计时循环之外执行的,但计时循环里面的代码可以“看到”它们定义的值。
所以在引用的例子中,只有sorted(x)
这一部分是被计时的——实际上,x
的创建是在之前的设置代码中完成的。
9
来自Python内置的 help()
函数
>>>import timeit
>>>help(timeit)
....
Command line usage:
python timeit.py [-n N] [-r N] [-s S] [-t] [-c] [-h] [--] [statement]
Options:
-n/--number N: how many times to execute 'statement' (default: see below)
-r/--repeat N: how many times to repeat the timer (default 3)
-s/--setup S: statement to be executed once initially (default 'pass')
....