9.254 SYSTEM_CLOCK — Функция времени
- Описание:
-
Определяет количество тактов процессорного счетчика с неопределённого момента в прошлом по модулю COUNT_MAX, COUNT_RATE определяет число тактов процессора в секунду. Если платформа поддерживает монотонный таймер, используется этот таймер, который, в зависимости от реализации платформенного таймера, может обеспечивать разрешение до наносекунд. Если монотонный таймер недоступен, реализация использует таймер реального времени.
COUNT_RATE зависит от системы и может меняться в зависимости от типа аргументов. Для аргументов типа kind=4 (и меньших целочисленных типов) COUNT представляет миллисекунды, а для аргументов типа kind=8 (и более крупных целочисленных типов) COUNT обычно представляет микро- или наносекунды, в зависимости от разрешения базового платформенного таймера. COUNT_MAX обычно равно
HUGE(COUNT_MAX). Обратите внимание, что разрешение в миллисекундах версии с kind=4 подразумевает, что COUNT будет переполняться примерно через 25 дней. Для избежания проблем с переполнением и для более точного измерения времени используйте версию с kind=8.Если таймер отсутствует или запрос к таймеру завершается ошибкой, COUNT устанавливается в
-HUGE(COUNT), а COUNT_RATE и COUNT_MAX — в ноль.При выполнении на платформе, использующей библиотеку GNU C (glibc) версии 2.16 или более ранней, или производной от неё, высокоточчный монотонный таймер доступен только при подключении к библиотеке rt. Это можно сделать явно, добавив флаг
-lrtпри компоновке приложения, но также делается неявно при использовании OpenMP.На платформе Windows версия с аргументами kind=4 использует функцию
GetTickCount, а версия с kind=8 используетQueryPerformanceCounterиQueryPerformanceCounterFrequency. Для получения дополнительной информации и потенциальных нюансов обратитесь к документации платформы. - Стандарт:
-
Fortran 95 и более поздние версии
- Класс:
-
Подпрограмма
- Синтаксис:
-
CALL SYSTEM_CLOCK([COUNT, COUNT_RATE, COUNT_MAX]) - Аргументы:
-
COUNT (Необязательно) должен быть скаляром типа INTEGERсINTENT(OUT).COUNT_RATE (Необязательно) должен быть скаляром типа INTEGERилиREAL, сINTENT(OUT).COUNT_MAX (Необязательно) должен быть скаляром типа INTEGERсINTENT(OUT). - Пример:
-
PROGRAM test_system_clock INTEGER :: count, count_rate, count_max CALL SYSTEM_CLOCK(count, count_rate, count_max) WRITE(*,*) count, count_rate, count_max END PROGRAM
- См. также:
Следующий: TAN, Предыдущий: SYSTEM, Вверх: Встроенные процедуры [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/SYSTEM_005fCLOCK.html