您沒有正確讀取這些數字。 IPython報告時間爲納秒(請注意ns
的縮寫)。 Python正在報告微秒的計時(usec
)。
1微秒是1000納秒;正常化到納秒Python的報告時間是16.3納秒,所以它只有5倍的速度。
但是,我無法重現您的發現。在virtualenv中既運行IPython的,並直接使用相同的Python二進制:
venv-3.6 $ bin/ipython
Python 3.6.2 (default, Jul 18 2017, 14:26:50)
Type "copyright", "credits" or "license" for more information.
IPython 5.2.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: %timeit a=1
100000000 loops, best of 3: 11.9 ns per loop
In [2]:
Do you really want to exit ([y]/n)? y
venv-3.6 $ bin/python -m timeit 'a=1'
100000000 loops, best of 3: 0.0121 usec per loop
,並在Jupyter筆記本,同樣具有相同的virtualenv;這基本上是驅動IPython中,從而預期沒有真正的區別是:
%timeit a=1
100000000 loops, best of 3: 11.8 ns per loop
因此多數民衆贊成11.9 VS 12.1 VS 11.8納秒;太接近了不起作用。
84.1 **納秒**不比0.0163微秒慢1百萬倍。 84.1納秒是0.0841微秒,所以差異是5倍。 –