2
在命令行中,我可以这样做:强制timeit自动选择次声明的次数执行
python -m timeit 'a = 1'
根据文档:
如果-n没有给出一个合适的通过尝试10的连续功率 直到总时间至少0.2秒来计算回路数。
这很好,但在我的程序中使用timeit
时,我该如何获得相同的行为?如果我忽略timeit.timeit
调用的number
参数,它将简单地默认为1000000
。
在命令行中,我可以这样做:强制timeit自动选择次声明的次数执行
python -m timeit 'a = 1'
根据文档:
如果-n没有给出一个合适的通过尝试10的连续功率 直到总时间至少0.2秒来计算回路数。
这很好,但在我的程序中使用timeit
时,我该如何获得相同的行为?如果我忽略timeit.timeit
调用的number
参数,它将简单地默认为1000000
。
该文档不明显,存在这样的功能,我会假设没有。幸运的是,定义一个包装,它会为你是不是太难:
import timeit
def auto_timeit(stmt='pass', setup='pass'):
n = 1
t = timeit.timeit(stmt, setup, number=n)
while t < 0.2:
n *= 10
t = timeit.timeit(stmt, setup, number=n)
return t/n # normalise to time-per-run
这里是写一个包装替代:
import subprocess
import sys
subprocess.call([sys.executable, '-m', 'timeit', stmt])
为什么这个答案downvoted?我没有看到任何明显的问题。 – max 2012-04-26 02:41:27