- 統(tǒng)計整個cell中所有代碼的運行時間
%%time
# cell begin
%%time
import time
for _ in range(100):
time.sleep(0.03) # sleep 0.03s
# cell end
CPU times: user 7.06 ms, sys: 223 μs, total: 7.29 ms
Wall time: 3.01 s
- 統(tǒng)計當前所在行代碼運行時間
%time
和%timeit
# cell begin
%%time
import time
%time for _ in range(100): time.sleep(0.03)
for _ in range(100): time.sleep(0.02)
# cell end
# The specific line
CPU times: user 2.79 ms, sys: 3.31 ms, total: 6.1 ms
Wall time: 3.01 s
# The whole cell
CPU times: user 8.08 ms, sys: 5.51 ms, total: 13.6 ms
Wall time: 5.03 s
上面是使用%time
統(tǒng)計當前行代碼的運行時間庞呕,只運行一次瑰钮。
# cell begin
%%time
import time
%timeit time.sleep(0.03)
for _ in range(100): time.sleep(0.02)
#cell end
# The specific line
30.1 ms ± 3.91 μs per loop (mean ± std. dev. of 7 runs, 10 loops each) # total 7x10=70 loops, ~2.1s
# The whole cell
CPU times: user 8.4 ms, sys: 4.42 ms, total: 12.8 ms
Wall time: 4.45 s
上面是使用%timeit
統(tǒng)計當前行代碼的運行時間梢灭,可以看到代碼運行了70次。
注意:%timeit
使用Python的timeit模塊來統(tǒng)計代碼運行時間兴垦,被統(tǒng)計代碼將被執(zhí)行多次日矫,最終輸出每執(zhí)行一次的平均時間。
在%timeit
例子中枢里,待統(tǒng)計代碼的運行次數(shù)(如:7)和每次的循環(huán)次數(shù)(如:10)是由系統(tǒng)根據(jù)代碼情況動態(tài)確定的孽鸡。我們也可以通過手動設定-r
和 -n
參數(shù)來手動指定代碼的運行次數(shù)和每次循環(huán)次數(shù)。例如:
# cell begin
%%time
import time
%timeit -r 5 -n 7 time.sleep(0.03)
for _ in range(100): time.sleep(0.02)
#cell end
# The specific line
19.6 ms ± 741 μs per loop (mean ± std. dev. of 5 runs, 7 loops each) # total 5x7=35 loops, ~1s
# The whole cell
CPU times: user 6.99 ms, sys: 4.77 ms, total: 11.8 ms
Wall time: 3.4 s
在上例中栏豺,指定行的代碼共運行了5次彬碱,每次循環(huán)了7次,共循環(huán)35次奥洼。