在 Python 中計算所經過的時間
-
在 Python 中使用
time
模組的time()
函式計算函式的經過時間 -
在 Python 中使用
time
模組的perf_counter()
函式計算函式的經過時間 -
在 Python 中使用
time
模組的process_time()
函式計算函式的經過時間
在本教程中,我們將討論在 Python 中計算程式執行時間的方法。
time
模組是一個內建模組,其中包含許多與時間相關的功能。時間模組中的幾種方法可用於計算 Python 中程式的執行時間。下面將討論這些方法。
在 Python 中使用 time
模組的 time()
函式計算函式的經過時間
time()
函式為我們提供了當前時間(以秒為單位)。它返回一個浮點數,其中包含以秒為單位的當前時間。以下程式碼示例向我們展示瞭如何在 Python 中使用 time()
函式來計算函式的執行時間。
import time
start = time.time()
print("The time used to execute this is given below")
end = time.time()
print(end - start)
輸出:
The time used to execute this is given below
0.00011444091796875
在上面的程式碼中,我們首先使用 time()
函式初始化包含開始時間的 start
變數,然後使用 time()
函式在 print()
語句之後初始化 end
變數。然後,我們通過從 end
中減去 start
來計算總執行時間。
在 Python 中使用 time
模組的 perf_counter()
函式計算函式的經過時間
perf_counter()
函式提供了最準確的系統時間度量。perf_counter()
函式返回全系統的時間,並將睡眠時間考慮在內。perf_counter()
函式還可用於計算函式的執行時間。以下程式碼示例向我們展示瞭如何使用 Python 中的 perf_counter()
函式來計算函式的執行時間。
import time
start = time.perf_counter()
print("This time is being calculated")
end = time.perf_counter()
print(end - start)
輸出:
This time is being calculated
0.00013678300001629395
在上面的程式碼中,我們首先使用 perf_counter()
函式初始化包含開始時間的 start
變數,然後使用 perf_counter()
函式在 print()
語句之後初始化 end
變數。然後,我們通過從 end
中減去 start
來計算總執行時間。
在 Python 中使用 time
模組的 process_time()
函式計算函式的經過時間
perf_counter()
函式受計算機後臺執行的其他程式的影響。它還會計算睡眠時間。因此,這對於測量程式的執行時間不是很理想。
使用 perf_counter()
函式的最佳實踐是執行幾次,然後平均時間可以對執行時間進行合理準確的估算。
另一種方法是使用 process_time()
函式。process_time()
函式專門用於估計程式的執行時間。它不受計算機後臺執行的其他程式的影響。它還不計算睡眠時間。
process_time()
函式返回一個浮點數,其中包含系統和程式的使用者 CPU 時間之和。以下程式碼示例向我們展示瞭如何使用 Python 中的 process_time()
函式來計算函式的執行時間。
import time
start = time.process_time()
print("This time is being calculated")
end = time.process_time()
print(end - start)
輸出:
This time is being calculated
0.000991254000000108
在上面的程式碼中,我們首先使用 process_time()
函式初始化包含開始時間的 start
變數,然後使用 process_time()
函式在 print()
語句之後初始化 end
變數。然後,我們通過從 end
中減去 start
來計算總執行時間。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn