1. 程式人生 > 其它 >python 時間函式 毫秒_python 利用time模組給程式計時

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() 來計算程式的運算時間,特別是測試演算法在相鄰兩幀的處理時間,如果計算不準確,那可能會對演算法的速度過於自信。

尤其在嵌入式的板子的開發中,效能的測試中,請仔細選擇時間模組,比如某些嵌入式板子會封裝專門的模組。