9.92 DTIME — Подпрограмма (или функция) времени выполнения
- Описание:
-
DTIME(VALUES, TIME)изначально возвращает количество секунд времени выполнения с момента запуска процесса в TIME. VALUES возвращает пользовательскую и системную составляющие этого времени вVALUES(1)иVALUES(2)соответственно. TIME равноVALUES(1) + VALUES(2).Последующие вызовы
DTIMEвозвращают значения, накопленные с момента предыдущего вызова.В некоторых системах основанные замеры времени представлены типами с достаточно маленькими ограничениями, что приводит к переполнению (переходу через нуль), например, 32-битные типы. Поэтому значения, возвращаемые этим внутренним модулем, могут быть отрицательными или меньше предыдущих значений во время одного выполнения скомпилированной программы.
Обратите внимание, что эта реализация является потокобезопасной при использовании в директивах OpenMP, т.е. её состояние будет согласованным при вызовах из нескольких потоков. Однако, если
DTIMEвызывается из нескольких потоков, результат по-прежнему будет временем с момента последнего вызова. Это может не дать ожидаемого результата. Если возможно, используйтеCPU_TIMEвместо этого.Этот внутренний модуль представлен в форме подпрограммы и функции; однако в любом программном модуле может быть использована только одна форма.
VALUES и TIME являются
INTENT(OUT)и предоставляют следующее:VALUES(1):Время пользователя в секундах. VALUES(2):Время системы в секундах. TIME:Время выполнения с момента запуска в секундах. - Стандарт:
-
Расширение GNU
- Класс:
-
Подпрограмма, функция
- Синтаксис:
-
CALL DTIME(VALUES, TIME).TIME = DTIME(VALUES), (не рекомендуется). - Аргументы:
-
VALUES Тип должен быть REAL(4), DIMENSION(2).TIME Тип должен быть REAL(4). - Возвращаемое значение:
-
Время выполнения в секундах с момента последнего вызова или с момента запуска программы, если до этого не вызывался.
- Пример:
-
program test_dtime integer(8) :: i, j real, dimension(2) :: tarray real :: result call dtime(tarray, result) print *, result print *, tarray(1) print *, tarray(2) do i=1,100000000 ! Just a delay j = i * i - i end do call dtime(tarray, result) print *, result print *, tarray(1) print *, tarray(2) end program test_dtime - См. также:
Далее: EOSHIFT, Предыдущее: DSHIFTR, Вверх: Внутренние процедуры [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.4.0/gfortran/DTIME.html