nu.&I86ۭ}
z{mʗ{V
z{S}ĝxjǺI Get a 0,83 s on my Athlon 1200 Mhz Win2k, using the program UtilTime.
-----Oorspronkelijk bericht-----
Van: blackbox{([at]})nowhere.xy
Verzonden: do 21-4-2005 21:52
Aan: BlackBox Mailing List
CC:
Onderwerp: [BlackBox] - System time in BB
Doug,
With this test program, I get a resolution of 3.4 s on WIN98 600 MHz, and
0.83 s on XP 1700 MHz:
MODULE UtilTime;
IMPORT
StdLog, WinApi;
VAR
freq: LONGINT;
PROCEDURE GetTime* (): REAL;
VAR
count: LONGINT;
ok: INTEGER;
BEGIN (*GetTime*)
ok := WinApi.QueryPerformanceCounter(count); ASSERT(ok # 0, 100);
RETURN count / freq;
END GetTime;
PROCEDURE TestTime*;
CONST
loops = 10000;
VAR
dt, t0, t1: REAL;
i: INTEGER;
BEGIN (*TestTime*)
dt := MAX(REAL);
t0 := GetTime();
FOR i := 1 TO loops DO
t1 := GetTime();
IF t1 > t0 THEN
dt := MIN(t1 - t0, dt);
END;
t0 := t1;
END;
StdLog.String("dt = ");
StdLog.Real(dt);
StdLog.Ln;
END TestTime;
PROCEDURE Init;
VAR
ok: INTEGER;
BEGIN (*Init*)
ok := WinApi.QueryPerformanceFrequency(freq); ASSERT(ok # 0, 100);
END Init;
BEGIN (*UtilTime*)
Init;
END UtilTime.
<Ctrl-Q> UtilTime.TestTime;
--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xyberon.ch
nu.&I86ۭ}
z{mʗbqb
z{m}ޝxjǺ
z{Ch+bv!~)^{\rtf1\ansi\ansicpg1252\fromtext \deff0{\fonttbl
{\f0\fswiss\fcharset0 Arial;}
{\f1\fmodern Courier New;}
{\f2\fnil\fcharset2 Symbol;}
{\f3\fmodern\fcharset0 Courier New;}}
{\colortbl\red0\green0\blue0;\red0\green0\blue255;}
\uc1\pard\plain\deftab360 \f0\fs20 I Get a 0,83 \'b5s on my Athlon 1200 Mhz Win2k, using the program UtilTime.\par
\par
\par
\par
\par
\par
\tab -----Oorspronkelijk bericht----- \par
\tab Van: blackbox{([at]})nowhere.xyns G\'e9rard Meunier \par
\tab Verzonden: do 21-4-2005 21:52 \par
\tab Aan: BlackBox Mailing List \par
\tab CC: \par
\tab Onderwerp: [BlackBox] - System time in BB\par
\tab \par
\tab \par
\par
\tab Doug,\par
\tab \par
\tab With this test program, I get a resolution of 3.4 \'b5s on WIN98 600 MHz, and\par
\tab 0.83 \'b5s on XP 1700 MHz:\par
\tab \par
\tab MODULE UtilTime;\par
\tab \par
\tab IMPORT\par
\tab \par
\tab StdLog, WinApi;\par
\tab \par
\tab VAR\par
\tab \par
\tab freq: LONGINT;\par
\tab \par
\tab PROCEDURE GetTime* (): REAL;\par
\tab \par
\tab VAR\par
\tab \par
\tab count: LONGINT;\par
\tab ok: INTEGER;\par
\tab \par
\tab BEGIN (*GetTime*)\par
\tab ok := WinApi.QueryPerformanceCounter(count); ASSERT(ok # 0, 100);\par
\tab RETURN count / freq;\par
\tab END GetTime;\par
\tab \par
\tab PROCEDURE TestTime*;\par
\tab \par
\tab CONST\par
\tab \par
\tab loops = 10000;\par
\tab \par
\tab VAR\par
\tab \par
\tab dt, t0, t1: REAL;\par
\tab i: INTEGER;\par
\tab \par
\tab BEGIN (*TestTime*)\par
\tab dt := MAX(REAL);\par
\tab t0 := GetTime();\par
\tab FOR i := 1 TO loops DO\par
\tab t1 := GetTime();\par
\tab IF t1 > t0 THEN\par
\tab dt := MIN(t1 - t0, dt);\par
\tab END;\par
\tab t0 := t1;\par
\tab END;\par
\tab StdLog.String("dt = ");\par
\tab StdLog.Real(dt);\par
\tab StdLog.Ln;\par
\tab END TestTime;\par
\tab \par
\tab PROCEDURE Init;\par
\tab \par
\tab VAR\par
\tab \par
\tab ok: INTEGER;\par
\tab \par
\tab BEGIN (*Init*)\par
\tab ok := WinApi.QueryPerformanceFrequency(freq); ASSERT(ok # 0, 100);\par
\tab END Init;\par
\tab \par
\tab BEGIN (*UtilTime*)\par
\tab Init;\par
\tab END UtilTime.\par
\tab \par
\tab <Ctrl-Q> UtilTime.TestTime;\par
\tab \par
\tab --- BlackBox\par
\tab --- send subject HELP or UNSUBSCRIBE to blackbox{([at]})oberon.ch\par
\tab \par
}}nu.&I86ۭ}
Received on Thu Apr 21 2005 - 22:47:01 UTC