以下内容:
timeit print("foo")
返回类似:100000 loops, best of 3: 2.35 µs per loop
的内容。我猜100000
与number
的{{1}}参数有关。我不明白timeit
的含义是什么,使用的时间单位是多少?在这种情况下,它可能是微秒,但我也看到best of 3
和us
作为单位;但是,我在文档中找不到解释。
答案 0 :(得分:10)
我假设你在这里谈论Command-line interface。
命令行界面首先会尝试找到合适数量的测试;它从10次运行开始,按比例增加10倍,直到总时间超过0.2秒。如果它打印 10000循环,则那是需要0.2秒或更长时间的循环次数。
3
是重复计数;测试重复几次,--repeat
默认为3.然后采用这3个中最快的时间。
然后将最快运行的总时间除以测试编号。数字以秒,毫秒或微秒表示,具体取决于循环的速度。一毫秒内有1000微秒,一秒钟内有1000毫秒,单位分别打印为sec
,msec
和usec
。
IPython有基于所有这些的%timeit
命令,但如果你的话,它们会进一步缩写并使用s
,ms
,us
甚至ns
代码足够快,需要纳秒单位大小。如果您的终端允许,us
微秒单位也可以显示为µs
。
您可以查看Python 3.4 implementation,并将其与iPython implentation进行比较(时间显示由_format_time()
function处理。