python 時間函式 毫秒_python 利用time模組給程式計時
技術標籤:python 時間函式 毫秒
python的time內建模組是一個與時間相關的內建模組,很多人喜歡用time.time()獲取當前時間的時間戳,利用程式前後兩個時間戳的差值計算程式的執行時間,如下:
1.使用time.time()
import time
T1 = time.time()
#______假設下面是程式部分______
for i in range(100*100):
pass
T2 = time.time()
print('程式執行時間:%s毫秒' % ((T2 - T1)*1000))
# 程式執行時間:0.0毫秒
不要以為你的處理器很厲害,就忽視了一個問題,一萬次遍歷,時間為0.0毫秒?
下面解決上面的質疑,
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() 來計算程式的運算時間,特別是測試演算法在相鄰兩幀的處理時間,如果計算不準確,那可能會對演算法的速度過於自信。
尤其在嵌入式的板子的開發中,效能的測試中,請仔細選擇時間模組,比如某些嵌入式板子會封裝專門的模組。