[fpc-pascal] timing again

spir ☣ denis.spir at gmail.com
Sun May 30 15:13:21 CEST 2010


On Tue, 18 May 2010 10:47:33 +0200 (CEST)
"Tomas Hajny" <XHajT03 at hajny.biz> wrote:

> On Mon, May 17, 2010 22:25, spir ☣ wrote:
> 
> 
> Hello Denis,
> 
> > I posted a question about timing some time a go and got an answer; but let
> > down for a while because other problems required my attention. So, I need
> > a simple func to get the current time; mainly to benchmark various
> > implementation choices, possibly for other needs.
>  .
>  .
> 
> If you need a high-resolution timer and only x86 platforms (or maybe
> x86_64 too), one option would be using the timer available in
> http://members.yline.com/~tom_at_work/cpudist.zip (see
> http://members.yline.com/~tom_at_work/ for link to documentation and
> further information).
> 
> A completely platform independent solution included in FPC RTL but with
> lower precision is using either Dos.GetTime, Dos.GetMsCount or one of
> functions provided in unit SysUtils (e.g. GetLocalTime, Time or Now).

Thank you. Using dos.getTime (including its last arg), the following returns integer time in 10^-2s units:

Function TimeInt : Integer;
var
	h,m,s,f	: word;
begin
	GetTime(h,m,s,f);
	result := 360000*h + 6000*m + s*100 + f;
end;

This is the needed base for my uses. (A unit of 1s is too gross for timing, this leads to endless runs; more precision than 10^-2s is unneeded.)


Denis
________________________________

vit esse estrany ☣

spir.wikidot.com



More information about the fpc-pascal mailing list