shrine 发表于 2020-6-13 11:09:14

计算耗时每次相差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秒,这也太多了吧




necrohan 发表于 2020-6-15 09:35:07

每次运行程序使用的内存块、cpu负载都是操作系统自动调整的,所以每次都会稍微有点差别,计算量小的程序看起来差别就可能很大,计算量大的就不明显了

chiangtp 发表于 2020-7-19 19:24:05

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]
查看完整版本: 计算耗时每次相差0.5秒