python time包中的time.time()和time.clock()的區別

在統計python代碼 執行速度時要使用到time包,在查找相關函數時有time.time()和time.clock()兩個函數可供選擇。而二者是有區別的:python

cpu 的運行機制:cpu是多任務的,例如在多進程的執行過程當中,一段時間內會有對各進程被處理。一個進程從開始到結束實際上是在這期間的一些列時間片段上斷斷續續執行的。因此這就引出了程序執行的cpu時間(該程序單純在cpu上運行所需時間)和牆上時鐘wall time。
time.time()是統計的wall time(即牆上時鐘),也就是系統時鐘的時間戳(1970紀元後通過的浮點秒數)。因此兩次調用的時間差即爲系統通過的總時間。
time.clock()是統計cpu時間 的工具,這在統計某一程序或函數的執行速度最爲合適。兩次調用time.clock()函數的插值即爲程序運行的cpu時間。函數

import time def test(): a = 0 for i in range(1,10000): a *=i t0 = time.time() t1 = time.clock() test() t_0 = time.time() t_1 = time.clock() print('系統時間:',t_0-t0) print('CPU時間:',t_1-t1)

運行結果:工具

系統時間: 0.0005710124969482422 CPU時間: 0.000563000000000001

能夠發現,CPU時間比系統時間短,這是合理的,系統時間包含CPU時間,須要指出的是,程序運行期間的等待時間是不計算在CPU時間內的,以下:spa

import time def test(): a = 0 for i in range(1,10000): a *=i t0 = time.time() t1 = time.clock() test() time.sleep(2) t_0 = time.time() t_1 = time.clock() print('系統時間:',t_0-t0) print('CPU時間:',t_1-t1)

運行結果:code

系統時間: 2.0023741722106934 CPU時間: 0.0005949999999999983
相關文章
相關標籤/搜索