在統計python代碼 執行速度時要使用到time包,在查找相關函數時有time.time()
和time.clock()
兩個函數可供選擇。而兩者是有區別的:
- cpu 的運行機制:cpu是多任務的,例如在多進程的執行過程中,一段時間內會有對各進程被處理。一個進程從從開始到結束其實是在這期間的一些列時間片斷上斷斷續續執行的。所以這就引出了程序執行的cpu時間(該程序單純在cpu上運行所需時間)和牆上時鍾wall time。
- time.time()是統計的wall time(即牆上時鍾),也就是系統時鍾的時間戳(1970紀元后經過的浮點秒數)。所以兩次調用的時間差即為系統經過的總時間。
- time.clock()是統計cpu時間 的工具,這在統計某一程序或函數的執行速度最為合適。兩次調用time.clock()函數的插值即為程序運行的cpu時間。
自己跑了下例子
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
import time
start1 = time.clock()
start2 = time.time()
for i in range(10000):
print (i)
end1 = time.clock()
end2 = time.time()
print ('wall time is different is %6.3f' % (end1 - start1))
print ('CPU time is different is %6.3f' % (end2 - start2))
wall time is different is 3.593
CPU time is different is 3.594