Spec-Zone.ru › GNU Fortran 11

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
См. также:

CPU_TIME

Далее: EOSHIFT, Предыдущее: DSHIFTR, Вверх: Встроенные процедуры [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gfortran/DTIME.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API