Измерение прошедшего времени в Python

есть простым способом / модулем для правильно Прошедшее время в Python? Я знаю, что я могу просто позвонить Time.time () дважды и принять разницу, но это даст неправильные результаты, если изменено системное время. Упрашивается, это не происходит очень часто, но это указывает, что я измеряю неправильную вещь.

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

Итак, есть ли способ запросить этот «таймер времени» напрямую? Я полагаю, что его можно представить как миллисекундальное или микросекундное значение, которое не имеет значимого абсолютного представления (и, таким образом, не нужно регулировать системное время). Глядя немного, похоже, что это именно то, что System.naNoTime () делает в Java, но я не нашел соответствующую функцию Python, даже если она должна быть легче предоставить, чем Time.time () .

Отредактируйте: чтобы избежать путаницы и обратиться к ответам ниже: это не относится к моменту DST, и я тоже не хочу время процессора - я хочу прошедшее физическое время. Не нужно быть очень мелкозернистыми, а даже не особенно точными. Он просто не должен давать мне негативные длительности, или продолжительность, которые на несколько порядков (выше гранулярности), только потому, что кто-то решил установить системные часы на другое значение. Вот какие документы Python говорят о «Time.time ()»:

«Хотя эта функция обычно возвращает необычные значения, он может вернуть более низкое значение, чем предыдущий вызов, если системные часы были установлены между двумя Звонки «

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

Edit2: Некоторые исследования показывают, что вы можете получить системное время независимое измерение, как я хочу в Windows, используя GetTickCount64 (), под Linux вы можете получить его в возвращаемой стоимости времени (). Однако я до сих пор не могу найти модуль, который предоставляет эту функциональность в Python.

49
задан jww 29 April 2018 в 14:54
поделиться