8.264 SYSTEM_CLOCK — Функция времени
- Описание:
-
Определяет значение COUNT процессорных часов с момента неопределенного времени в прошлом по модулю 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 90 и более поздние версии
- Класс:
-
Подпрограмма
- Синтаксис:
-
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
- См. также:
DATE_AND_TIME— Подпрограмма даты и времени,CPU_TIME— Время работы процессора в секундах
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/SYSTEM_005fCLOCK.html