计算耗时每次相差0.5秒
本帖最后由 shrine 于 2020-6-15 07:58 编辑program main
Use DFPort
Use Kernel32
integer , parameter :: QP = Selected_real_kind( 18 )
integer::a , b , f,iss
real(kind=QP)::time_begin,time_end
CALL CPU_TIME ( time_begin )
iss = QueryPerformanceFrequency( Loc(f) )
iss = QueryPerformanceCounter( Loc(a) )
......
......!computing
.....
iss = QueryPerformanceCounter( Loc(b) )
CALL CPU_TIME ( time_end )
write(*,*)'Time of operation was ',(b-a)*1.0e-8_QP/(f*1.0e-8_QP), ' seconds' ,time_end-time_begin
end
这两种方法本身相差0.2秒
连续两次计算,相同的方法居然相差0.5秒,这也太多了吧
每次运行程序使用的内存块、cpu负载都是操作系统自动调整的,所以每次都会稍微有点差别,计算量小的程序看起来差别就可能很大,计算量大的就不明显了 for "计算量小的程序"INTEGER :: clock_rate, clock_max, clocks, clock_1, clock_2
REAL :: sec_elapsed
...
CALL SYSTEM_CLOCK(COUNT_RATE=clock_rate, COUNT_MAX=clock_max)
...
!-------
CALL SYSTEM_CLOCK(COUNT=clock_1)
...
CALL SYSTEM_CLOCK(COUNT=clock_2)
clocks = clock_2 - clock_1
IF( clocks < 0 ) clocks = clocks + clock_max
sec_elapsed = REAL(clocks)/REAL(clock_rate)
页:
[1]