* 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
26 lines
761 B
Plaintext
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
|