monotimes
Модуль std/monotimes реализует монотонные временные метки. Монотонная временная метка представляет время, прошедшее с некоторой системной точки отсчета. Монотонные временные метки гарантированно всегда увеличиваются, что означает, что гарантируется следующее:
let a = getMonoTime() # ... do some work let b = getMonoTime() assert a <= b
Это не гарантируется для типа times.Time! Это означает, что тип MonoTime следует использовать при измерении продолжительности времени с высокой точностью.
Однако, поскольку MonoTime представляет время, прошедшее с некоторого неизвестного начального момента времени, его нельзя преобразовать в удобочитаемую временную метку. Если это требуется, вместо этого следует использовать тип times.Time.
Тип MonoTime хранит временную метку с разрешением в наносекунды, но обратите внимание, что фактическое поддерживаемое разрешение времени отличается для разных систем.
См. также
Импорты
- times, posix
Типы
MonoTime = object ticks: int64
- Представляет монотонную временную метку. Исходный код Редактировать
Процедуры
proc getMonoTime(): MonoTime {...}{.tags: [TimeEffect], raises: [].}-
Получение текущей временной метки
MonoTime.При компиляции с JS-бэкендом и выполнении в браузере эта процедура вызывает
Исходный код Редактироватьwindow.performance.now(), что не поддерживается более старыми браузерами. Подробнее см. MDN. proc ticks(t: MonoTime): int64 {...}{.raises: [], tags: [].}- Возвращает значение сырых тиков из
MonoTime. Это значение всегда использует разрешение времени в наносекундах. Исходный код Редактировать proc `$`(t: MonoTime): string {...}{.raises: [], tags: [].}- Исходный код Редактировать
proc `-`(a, b: MonoTime): Duration {...}{.raises: [], tags: [].}- Возвращает разницу между двумя временными метками
MonoTimeв видеDuration. Исходный код Редактировать proc `+`(a: MonoTime; b: Duration): MonoTime {...}{.raises: [], tags: [].}- Увеличивает
aнаb. Исходный код Редактировать proc `-`(a: MonoTime; b: Duration): MonoTime {...}{.raises: [], tags: [].}- Уменьшает
aнаb. Исходный код Редактировать proc `<`(a, b: MonoTime): bool {...}{.raises: [], tags: [].}- Возвращает true, если
aпроизошло доb. Исходный код Редактировать proc `<=`(a, b: MonoTime): bool {...}{.raises: [], tags: [].}- Возвращает true, если
aпроизошло доbили если они произошли одновременно. Исходный код Редактировать proc `==`(a, b: MonoTime): bool {...}{.raises: [], tags: [].}- Возвращает true, если
aиbпроизошли одновременно. Исходный код Редактировать proc high(typ: typedesc[MonoTime]): MonoTime
- Возвращает наибольшую представимую
MonoTime. Исходный код Редактировать proc low(typ: typedesc[MonoTime]): MonoTime
- Возвращает наименьшую представимую
MonoTime. Исходный код Редактировать
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/monotimes.html