來源:https://zhuanlan.zhihu.com/p/110005305
2.使用time.clock()
Python time clock() 函數以浮點數計算的秒數返回當前的CPU時間。用來衡量不同程序的耗時,比time.time()更有用。
這個需要注意,在不同的系統上含義不同。在UNIX系統上,它返回的是"進程時間",它是用秒表示的浮點數(時間戳)。而在WINDOWS中,第一次調用,返回的是進程運行的實際時間。而第二次之后的調用是自第一次調用以后到現在的運行時間。(實際上是以WIN32上QueryPerformanceCounter()為基礎,它比毫秒表示更為精確)
使用time.clock()更改后的程序查看一下:
import platform print('系統:',platform.system()) import time T1 = time.clock() #______假設下面是程序部分______ for i in range(100*100): pass T2 =time.clock() print('程序運行時間:%s毫秒' % ((T2 - T1)*1000)) # 程序運行時間:0.27023641716203606毫秒
3.使用time.perf_counter()
返回性能計數器的值(以微秒為單位,1秒=1000毫秒;1毫秒=1000微秒)作為浮點數,即具有最高可用分辨率的時鍾,以測量短持續時間。它包括在睡眠期間和系統范圍內流逝的時間。返回值的參考點未定義,因此只有連續調用結果之間的差異有效。
1秒 = 1000毫秒
1毫秒 = 1000微秒
1微秒 = 1000納秒
1納秒 = 1000皮秒
import platform print('系統:',platform.system()) import time T1 = time.perf_counter() #______假設下面是程序部分______ for i in range(100*100): pass T2 =time.perf_counter() print('程序運行時間:%s毫秒' % ((T2 - T1)*1000)) # 系統: Windows # 程序運行時間:0.3007180604248629毫秒
4.使用time.process_time()
返回當前進程的系統和用戶CPU時間總和的值(以小數微秒為單位)作為浮點數。
通常time.process_time()也用在測試代碼時間上,根據定義,它在整個過程中。返回值的參考點未定義,因此我們測試代碼的時候需要調用兩次,做差值。
注意process_time()不包括sleep()休眠時間期間經過的時間。
import platform print('系統:',platform.system()) import time T1 = time.process_time() #______假設下面是程序部分______ for i in range(100*100): pass T2 =time.process_time() print('程序運行時間:%s毫秒' % ((T2 - T1)*1000)) # 系統: Windows # 程序運行時間:0.0毫秒
寫在最后:
建議PC上使用time.perf_counter() 來計算程序的運算時間,特別是測試算法在相鄰兩幀的處理時間,如果計算不准確,那可能會對算法的速度過於自信。
尤其在嵌入式的板子的開發中,性能的測試中,請仔細選擇時間模塊,比如某些嵌入式板子會封裝專門的模塊。