PyTime C API¶
在 3.13 版本中新增。
時鐘 C API 提供對系統時鐘的訪問。它類似於 Python 的 time
模組。
對於與 datetime
模組相關的 C API,請參閱 日期時間物件。
型別¶
-
type PyTime_t¶
以納秒為單位的時間戳或持續時間,表示為有符號 64 位整數。
時間戳的參考點取決於所使用的時鐘。例如,
PyTime_Time()
返回相對於 UNIX 紀元的時間戳。支援的範圍大約為 [-292.3 年;+292.3 年]。以 Unix 紀元(1970 年 1 月 1 日)為參考,支援的日期範圍約為 [1677-09-21;2262-04-11]。確切的限制以常量的形式公開。
時鐘函式¶
以下函式接受指向 PyTime_t 的指標,並將該指標設定為特定時鐘的值。每個時鐘的詳細資訊在相應 Python 函式的文件中給出。
函式在成功時返回 0
,失敗時返回 -1
(並設定異常)。
在整數溢位時,它們會設定 PyExc_OverflowError
異常,並將 *result
的值鉗制到 [PyTime_MIN; PyTime_MAX]
範圍內。(在當前的系統中,整數溢位很可能是由於系統時間配置錯誤引起的。)
與任何其他 C API(除非另有說明)一樣,必須在持有 GIL 的情況下呼叫這些函式。
-
int PyTime_Monotonic(PyTime_t *result)¶
讀取單調時鐘。有關此時鐘的重要詳細資訊,請參閱
time.monotonic()
。
-
int PyTime_PerfCounter(PyTime_t *result)¶
讀取效能計數器。有關此時鐘的重要詳細資訊,請參閱
time.perf_counter()
。
-
int PyTime_Time(PyTime_t *result)¶
讀取“掛鐘”時間。有關此時間的重要詳細資訊,請參閱
time.time()
。
原始時鐘函式¶
與時鐘函式類似,但在出錯時不會設定異常,並且不要求呼叫者持有 GIL。
成功時,函式返回 0
。
失敗時,它們將 *result
設定為 0
並返回 -1
,不 設定異常。要獲取錯誤的原因,請獲取 GIL 並呼叫常規(非 Raw
)函式。請注意,常規函式在 Raw
函式失敗後可能會成功。
-
int PyTime_MonotonicRaw(PyTime_t *result)¶
類似於
PyTime_Monotonic()
,但在出錯時不會設定異常,並且不要求持有 GIL。
-
int PyTime_PerfCounterRaw(PyTime_t *result)¶
類似於
PyTime_PerfCounter()
,但在出錯時不會設定異常,並且不要求持有 GIL。
-
int PyTime_TimeRaw(PyTime_t *result)¶
類似於
PyTime_Time()
,但在出錯時不會設定異常,並且不要求持有 GIL。