Сообщить об ошибке.

Функция get_clock_info() модуля time в Python

Детали реализации и точность часов

Синтаксис:

import time

time.get_clock_info(name)

Параметры:

Возвращаемое значение:

Описание:

Функция get_clock_info() модуля time получает детали реализации и точность указанных часов в качестве объекта пространства имен.

Поддерживаемые имена часов и соответствующие функции для чтения их значения:

Результат имеет следующие атрибуты:

  • adjustable: True, если часы могут быть изменены автоматически, например демоном NTP или вручную системным администратором, иначе - False,
  • implementation: имя базовой функции языка C, используемой для получения значения часов,
  • monotonic: True, если часы не зависят от корректировки системного времени, False в противном случае,
  • resolution: разрешение часов в секундах типа float.

Примеры использования:

import textwrap
import time

available_clocks = [
    ('monotonic', time.monotonic),
    ('perf_counter', time.perf_counter),
    ('process_time', time.process_time),
    ('time', time.time),
]

for clock_name, func in available_clocks:
    info=time.get_clock_info(clock_name)
    rez = textwrap.dedent(f'''\
    {clock_name}:
        adjustable    : {info.adjustable}
        implementation: {info.implementation}
        monotonic     : {info.monotonic}
        resolution    : {info.resolution}
        current       : {func()}
    ''')
    print(rez)

Ниже вывод для OS Linux показывает, что часы с именем monotonic и perf_counter реализованы с использованием одного и того же системного вызова CLOCK_MONOTONIC.

monotonic:
    adjustable    : False
    implementation: clock_gettime(CLOCK_MONOTONIC)
    monotonic     : True
    resolution    : 1e-09
    current       : 12870.08461075

perf_counter:
    adjustable    : False
    implementation: clock_gettime(CLOCK_MONOTONIC)
    monotonic     : True
    resolution    : 1e-09
    current       : 12870.084681206

process_time:
    adjustable    : False
    implementation: clock_gettime(CLOCK_PROCESS_CPUTIME_ID)
    monotonic     : True
    resolution    : 1e-09
    current       : 0.013859852

time:
    adjustable    : True
    implementation: clock_gettime(CLOCK_REALTIME)
    monotonic     : False
    resolution    : 1e-09
    current       : 1587732782.3735676