Files
harbour-core/harbour/tests/ticktime.prg
Mindaugas Kavaliauskas d2856c340f 2008-12-25 11:14 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* include/hbextern.ch
  * source/rtl/seconds.c
    + implemented hb_milliseconds(). This function returns time value 
      from some moment in the past (not midnigth!). It does not start 
      to cound from zero in midnight, thus, can be safetly used to 
      measure time intervals.
  + tests/ticktime.c
    + Added nice test for hb_milliseconds().
      Results on WinXP:
        Ticks per second: 63.595
        Min/avg/max interval (ms): 15.000 / 15.724 / 47.000
        Loops per tick:      13035.09
      Results on openSUSE on VirtualBox on WinXP:
        Ticks per second: 384306.138
        Min/avg/max interval (ms): 0.001 / 0.003 / 11.112
        Loops per tick:      1.04
2008-12-25 09:12:32 +00:00

26 lines
761 B
Plaintext

/*
* $Id$
*/
PROC main()
LOCAL nTime0, nTime, nTimeLast, nMin := 9999, nMax := -9999, nTick := 0, nLoop := 0
? "Wait for 10 seconds..."
nTimeLast := nTime0 := HB_MILLISECONDS()
DO WHILE ( nTime := HB_MILLISECONDS() ) - nTime0 < 10000
IF nTimeLast != nTime
nTick++
nMin := MIN(nMin, nTime - nTimeLast)
nMax := MAX(nMax, nTime - nTimeLast)
nTimeLast := nTime
ENDIF
nLoop++
ENDDO
nTime := nTimeLast - nTime0
? "Ticks per second:", LTRIM(STR(nTick * 1000/ nTime, 12, 3))
? "Min/avg/max interval (ms):", LTRIM(STR(nMin, 9, 3)), "/", ;
LTRIM(STR(nTime / nTick, 9, 3)), "/", ;
LTRIM(STR(nMax, 9, 3))
? "Loops per tick:", nLoop / nTick
RETURN