Понимание time.perf_counter () и time.process_time ()

У меня есть некоторые вопросы о новых функциях time.perf_counter() и time.process_time() .

Для первого из документации:

Возвратите значение (в дробных секундах) счетчика производительности, то есть часы с самым высоким доступным разрешением для измерения короткой продолжительности. Он включает время, прошедшее во время сна, и является общесистемным. Исходная точка возвращаемого значения не определена, поэтому допустима только разница между результатами последовательных вызовов.

Является ли это «высокое разрешение» одинаковым для всех систем? Или это всегда слегка зависит, если, например, мы используем окна ручного окна?
Вопрос исходит из того, что чтение документации time.time() говорит, что «не все системы обеспечивают время с лучшей точностью, чем 1 секунда», так как они могут обеспечить лучшее и более высокое разрешение сейчас?

О последнем, time.process_time() :

Возвращает значение (в дробных секундах) суммы системного и пользовательского времени процессора текущего процесса. Это не включает время, прошедшее во время сна. По определению это процесс по всей ширине. Исходная точка возвращаемого значения не определена, поэтому допустима только разница между результатами последовательных вызовов.

Я не понимаю, что такое «системное время» и «время процессора пользователя»? Какая разница?

One Solution collect form web for “Понимание time.perf_counter () и time.process_time ()”

В этом контексте есть два разных типа «времени»: абсолютное время и относительное время.

Абсолютное время – это «реальное время», которое возвращается time.time() и с которым мы все привыкли. Он обычно измеряется с фиксированного момента времени в прошлом (например, эпоха UNIX 00:00:00 UTC 01/01/1970) с разрешением не менее 1 секунды. Современные системы обычно обеспечивают милли- или микросекундное разрешение. Он поддерживается специальным оборудованием на большинстве компьютеров, схема RTC (часы реального времени) обычно питается от батареи, поэтому система отслеживает реальное время между бонусами. Это «реальное время» также может быть изменено в зависимости от вашего местоположения (временные зоны) и сезона (летнее время) или выражено как смещение от UTC (также известное как GMT или Zulu time).

Во-вторых, есть относительное время, которое возвращается time.perf_counter и time.process_time . Этот тип времени не имеет определенного отношения к реальному времени, в том смысле, что отношения являются специфическими для системы и реализации. Его можно использовать только для измерения временных интервалов, т. Е. Значения без единицы, которое пропорционально времени, прошедшему между двумя моментами. Это в основном используется для оценки относительной производительности (например, работает ли эта версия кода быстрее, чем эта версия кода).

В современных системах он измеряется с помощью счетчика CPU, который монотонно увеличивается с частотой, связанной с аппаратными часами процессора. Разрешение счетчика сильно зависит от аппаратного обеспечения системы, значение не может быть надежно связано с реальным временем или даже сравнивается между системами в большинстве случаев. Кроме того, значение счетчика сбрасывается при каждом включении или сбросе ЦП.

time.perf_counter возвращает абсолютное значение счетчика. time.process_time – это значение, которое выводится из счетчика CPU, но обновляется только тогда, когда данный процесс выполняется на процессоре и может быть разбит на «пользовательское время», это время, когда сам процесс запускается на CPU, и «системное время», которое является временем, когда ядро ​​операционной системы работает на процессоре от имени процесса.

  • создать биграмм из столбца в pandas df
  • Мне нужно перебирать текстовый файл и печатать определенный текст, начиная с и заканчивая выполнение условия в python 3
  • Поддерживает ли CMake Python3?
  • Разница между python 2.7 и 3.3+ при импорте в __init__.py и модуле из того же каталога
  • Не удается загрузить маринованный объект
  • Как удалить запись из таблицы?
  • Нормализация Unicode
  • Получите результаты dis.dis () в строке
  • Pandas groupby применяют медленные действия
  • Почему поведение отличается от глобальных переменных в «модуле импорта» и «от импорта модуля»?
  • pandas dataframe to mysql db ошибка базы данных вкус mysql не поддерживается
  •  
    Interesting Posts for Van-Lav

    Python: создание всех упорядоченных комбинаций списка

    Поле модели admin Django установлено текущему пользователю

    Python: возвращает вывод функции ksh

    Hadoop cluster – Нужно ли мне копировать свой код на все компьютеры перед запуском задания?

    TypeError: данные изображения не могут преобразовываться в float с использованием matplotlib

    Как создать обнаружение коллизий для моих прыгающих шаров?

    Как включить / отключить несколько кнопок отправки в форме в зависимости от выбора переключателя

    numpy.genfromtxt создает массив того, что выглядит как кортежи, а не 2D-массив – почему?

    TypeError: объект типа «Курсор» не имеет len ()

    Увеличение значения внутри элемента списка

    загрузка файла с использованием селена

    Что может блокировать mousePressEvent или фильтр фильтра событий мыши Нажмите «События»?

    ошибка python с __le__, __ge__?

    Функция разделения при записи открытого файла в Python

    Проверка ввода и загрузки файлов в Django

    Python - лучший язык программирования в мире.