无法理解 timeit 输出
Cannot understand timeit output
我的问题是:
>>> 999 in list(xrange(1000))
True # this takes a glimpse
改为:
>>> import timeit
>>> timeit.timeit('999 in list(xrange(1000))')
26.88947892189026
为什么timeit
输出这么高?
谢谢
因为它这样做 100 万次 !
https://docs.python.org/3.4/library/timeit.html#timeit.timeit
timeit.timeit
采用位置参数 number
,默认为 1.000.000
,因此与仅执行一次相比,执行 100 万次语句确实需要更长的时间。
如果你这样做 1 次,速度会更快:
In [2]: timeit.timeit('999 in list(xrange(1000))')
Out[2]: 31.733104944229126
In [3]: timeit.timeit('999 in list(xrange(1000))', number=1)
Out[3]: 4.5061111450195312e-05
timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000)
愚蠢的问题,语句的默认执行次数是一百万次...我之前应该读过timeit
doc...
>>> timeit.timeit('999 in list(xrange(1000))', number=1)
9.083747863769531e-05
我的问题是:
>>> 999 in list(xrange(1000))
True # this takes a glimpse
改为:
>>> import timeit
>>> timeit.timeit('999 in list(xrange(1000))')
26.88947892189026
为什么timeit
输出这么高?
谢谢
因为它这样做 100 万次 !
https://docs.python.org/3.4/library/timeit.html#timeit.timeit
timeit.timeit
采用位置参数 number
,默认为 1.000.000
,因此与仅执行一次相比,执行 100 万次语句确实需要更长的时间。
如果你这样做 1 次,速度会更快:
In [2]: timeit.timeit('999 in list(xrange(1000))')
Out[2]: 31.733104944229126
In [3]: timeit.timeit('999 in list(xrange(1000))', number=1)
Out[3]: 4.5061111450195312e-05
timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000)
愚蠢的问题,语句的默认执行次数是一百万次...我之前应该读过timeit
doc...
>>> timeit.timeit('999 in list(xrange(1000))', number=1)
9.083747863769531e-05