Ce face time.clock_gettime(), clock_getres(), clock_settime(), get_clock_info()
Pe Unix, clock_gettime(id) citește un anumit ceas al sistemului: CLOCK_REALTIME (ora reală), CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID etc. clock_getres(id) dă rezoluția lui. clock_settime() setează un ceas și necesită drepturi de administrator. Toate au variante _ns.
get_clock_info(nume) descrie ceasurile folosite de time(), monotonic(), perf_counter(), process_time() și thread_time(): implementarea, rezoluția, dacă este monoton și dacă poate fi ajustat.
Parametri
| Parametru | Descriere |
|---|---|
clk_id |
Identificatorul ceasului (constantele time.CLOCK_*). |
nume |
Pentru get_clock_info: 'time', 'monotonic', 'perf_counter', 'process_time', 'thread_time'. |
Ce returnează
Secunde (float), nanosecunde (int) sau un obiect cu informații.
Exemple
Exemplul 1: Ceasurile sistemului
import time
print(time.get_clock_info("perf_counter"))
print(time.get_clock_info("time").adjustable)
print(time.clock_getres(time.CLOCK_REALTIME))
print(time.clock_gettime(time.CLOCK_MONOTONIC), time.clock_gettime_ns(time.CLOCK_MONOTONIC))
try:
time.clock_settime(time.CLOCK_REALTIME, time.time())
except PermissionError as e:
print("Eroare:", e)
try:
time.clock_settime_ns(time.CLOCK_REALTIME, time.time_ns())
except PermissionError as e:
print("Eroare:", e)
Rezultat posibil (pe macOS, fără drepturi de administrator)
namespace(implementation='mach_absolute_time()', monotonic=True, adjustable=False, resolution=4.166666666666666e-08)
True
1e-06
412893.551274 412893551281000
Eroare: [Errno 1] Operation not permitted
Eroare: [Errno 1] Operation not permitted
Greșeli frecvente
- Folosești aceste funcții pe Windows: nu există acolo. Pentru cod portabil, rămâi la
time.monotonic()șitime.perf_counter().
Comenzi înrudite
time.perf_counter(), monotonic(), process_time(), thread_time(): Ceasuri pentru măsurarea duratelor: timp real, timp de procesor al procesului sau al firului.time.time() și time.time_ns(): Ora curentă ca timestamp Unix: secunde (sau nanosecunde) de la 1 ianuarie 1970 UTC.