Python 中的定時器函式

Lakshay Kapoor 2023年1月30日 2021年7月13日
  1. 在 Python 中 time.time() 函式的使用
  2. 在 Python 中 time.Process_time() 函式的使用
  3. 在 Python 中 time.Perf_counter 函式的使用
  4. 在 Python 中 time.monotonic() 函式的使用
Python 中的定時器函式

Python 是一種非常龐大的程式語言,在全世界都有很高的使用率。程式設計師製作了大量需要大量 Python 程式碼行的程式。為了根據執行時間監控和分析這些程式碼,我們可以使用 Python 計時器函式。

time 模組在這裡是最重要的,因為它包含有助於檢查和分析時間的所有功能。

在本教程中,我們將討論使用 time 模組的各種 Python Timer 函式。

在 Python 中 time.time() 函式的使用

此函式以秒為單位返回時間。它是紀元之後經過的秒數 - 1970 年 1 月 1 日,00:00:00 (UTC)。該函式使用計算機系統設定的時間來返回輸出,即秒數。

例子:

import time

start = time.time()

for r in range(1,20000):
    pass

end = time.time()
print(format(end-start))

startend 之間,是程式碼的主體。這裡以 for 迴圈為例。

輸出:

3.252345085144043

請注意,輸出即秒是一個浮點值。

在 Python 中 time.Process_time() 函式的使用

此函式以秒為單位返回時間。整個過程的時間參考也記錄在函式中,而不僅僅是過程中經過的時間。

例子:

from time import process_time, sleep

start = process_time()  

for r in range(20):
    print(r, end=" ")

end = process_time()
print(end, start)
print(end-start)

輸出:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 10.756645 10.75523
0.0014150000000014984

time.sleep() 中花費的時間不是由這個函式測量的,這意味著它只測量兩個連續時間參考之間的時間差。

在 Python 中 time.Perf_counter 函式的使用

也稱為效能計數器,此函式有助於以更準確的方式獲取兩個引用之間的時間計數。此功能應僅應用於小型流程,因為它非常準確。

我們也可以在這個函式之間使用 time.sleep()。通過這個函式,程式碼的執行可以暫停幾秒鐘。sleep() 函式接受一個浮點值作為引數。

例子:

from time import perf_counter, sleep

n = 10
start = perf_counter()  

for r in range(n): 
    sleep(2)

end = perf_counter() 

print(end-start)

輸出:

20.03540569800043

返回值顯示經過的總時間。由於 sleep 功能設定為 2,因此在輸入值為 10 的情況下完成整個過程需要 20.035 秒。

在 Python 中 time.monotonic() 函式的使用

如果使用者在執行 Python 程式碼時更改了時間,那麼在 Python 中實現計時器功能時會產生巨大的差異。在這種情況下,單調定時器功能可確保時間參考根據使用者在外部所做的更改自行調整。

例子:

from time import monotonic, sleep

n = 10
start = monotonic()  

for r in range(n): 
    sleep(2)

end = monotonic() 

print(end-start)

輸出:

20.029595676999634

開始和結束參考確保程式適應使用者所做的任何更改。

Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

相關文章 - Python Timer