Timer
 
Возвращает количество времени, которое прошло с момента статической ссылки.

Синтаксис
Использование

result = Timer

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

Возвращает время с точностью Double , в секундах, которое прошло с момента статической ссылки.

Описание


Функция Timer полезна для выяснения, сколько времени занимает раздел кода при запуске, или для контроля времени выполнения всего вашего кода. Для того, чтобы узнать, сколько времени прошло между двумя точками в вашей программе, можно записать значение Timer на начальной и конечной точке , а затем вычесть из конечного значения начальное значение  (результат  = конечная точка - начальная точка).

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

Значение, возвращаемое Timer НЕ влияет на автоматическое изменение системных часов весной и осенью, при переходах на летнее время и обратно.

Пример

'' Пример, использующий функцию TIMER 
'' Примечание: см. текст о правильной стратегии ожидания
Dim Start As Double
Print "Wait 2.5 seconds."
Start = Timer
Do
    Sleep 1, 1
Loop Until (Timer - Start) > 2.5
Print "Done."


Различия платформ

  • На Win32 и Linux, если программа должна ждать 0,1 секунды или более, должна быть использована Sleep, это позволяет другим программам запускаться во время периода ожидания. Для более коротких задержек в цикле, использование TIMER может быть более точным.
  • Точкой отсчета варьируется, в зависимости от платформы. В Windows время измеряется относительно точки, когда компьютер был загружен. На DOS время измеряется по отношению к 1 января 1970 года.

Примечание для пользователей DOS: сегодня, количество секунд с 1970 года превышает 10 ^ 9 и поэтому непригодна для хранения в переменной с точностью Single, также она не должна быть умножена (чтобы получить 1/10 секунд или около того) и сохранена в 32-битных целочисленных переменных.

  • Точность TIMER варьируется, в зависимости от используемого компьютера. Если процессор имеет точность таймера (как счетчик производительности Pentium процессоров Intel) и ОС использует его, точность связана с часами процессора и можно ожидать микросекунды. Со старыми процессорами (386, 486) в DOS, разрешение 1/18 секунды.

  • Использование TIMER может вызвать доступ к дискам в DOS, смотрите форум для анализа и решения

Отличия от QB

  • В QB, TIMER возвращает количество секунд от последней полуночи, и его точность была 1/18 сек

См. также