Sun Studio 12:Fortran 库参考

1.4.8 dtimeetime:已用的执行时间

这两个函数的返回值都是已用时间(如果为 -1.0,表示出现错误)。返回的时间以秒数表示。

缺省情况下,Fortran 95 使用的 dtimeetime 版本使用系统的低精度时钟。该精度是百分之一秒。但是,如果在 Sun OSTM 操作系统实用程序 ptime(1) (/usr/proc/bin/ptime) 下运行程序,则使用高精度时钟。

1.4.8.1 dtime:自上次调用 dtime 后已用时间

对于 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%

1.4.8.2 etime:自开始执行后已用时间

对于 etime,已用时间为:

如果环境变量 PARALLELOMP_NUM_THREADS 定义为大于 1 的某个整数值,运行时库就确定程序是在多处理器模式下执行。

该函数的调用方式如下所示:

e = etime( tarray )

tarray

real(2)

输出 

e= -1.0:错误:tarray 值未定义

e≠ -1.0:单处理器:tarray(1) 中存储的是用户时间,tarray(2) 中存储的是系统时间

多处理器:tarray(1) 中存储的是挂钟时间,tarray(2) 中存储的是 0.0

返回值 

real

输出 

e= -1.0:错误

e≠ -1.0:tarray(1)tarray(2) 之和

请注意,初次调用 etime 时所得结果不准确。它只是使系统时钟开始运转。请勿使用初次调用 etime 返回的值。

示例:etime(),单处理器:


demo% cat tetime.f
       real e, etime, t(2)
       e = etime(t)         !  Startup etime - do not use result
       do i = 1, 10000
        k=k+1
       end do
       e = etime( t )
       print *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2)
       end
demo% f95 tetime.f
demo% a.out
elapsed: 0.02 , user: 0.01 , sys: 0.01
demo%

另请参见 times(2) 和《Fortran 编程指南》。