对于 dtime,已用时间为:
第一次调用:自开始执行后已用时间
后来调用:自上次调用 dtime 后已用时间
单处理器:CPU 占用的时间
多处理器:所有 CPU 占用时间总和,该数据没有什么用,这时可改用 etime。
在并行循环中调用 dtime 会得到不确定的结果,这是因为参与循环的所有线程都共用已用时间计数器。
该函数的调用方式如下所示:
|
e = dtime( tarray ) |
|||
|
tarray |
real(2) |
输出 |
e= -1.0:错误:tarray 值未定义 e≠ -1.0:没有错误,tarray(1) 中存储的是用户时间,tarray(2) 中存储的是系统时间 |
|
返回值 |
real |
输出 |
e= -1.0:错误 e≠ -1.0:tarray(1) 与 tarray(2) 之和 |
示例:dtime(),单处理器:
demo% cat tdtime.f
real e, dtime, t(2)
print *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2)
do i = 1, 10000
k=k+1
end do
e = dtime( t )
print *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2)
end
demo% f95 tdtime.f
demo% a.out
elapsed: 0.0E+0 , user: 0.0E+0 , sys: 0.0E+0
elapsed: 0.03 , user: 0.01 , sys: 0.02
demo%
|