+ define to be able to use epiktimer for time measurements

* write milliseconds correctly when not using epiktimer 

git-svn-id: trunk@30471 -
This commit is contained in:
florian 2015-04-06 20:13:19 +00:00
parent 6e11efa664
commit 29c28fd710

View File

@ -1,9 +1,10 @@
{ $define USEEPIK}
unit timer;
interface
uses
SysUtils;
SysUtils{$ifdef USEEPIK},epiktimer{$endif USEEPIK};
var
verbosetimer : boolean = true;
@ -15,7 +16,11 @@ unit timer;
implementation
var
{$ifdef USEEPIK}
et : TEpiktimer;
{$else EPIKTIMER}
stime,etime : cardinal;
{$endif USEEPIK}
function gt : cardinal;
@ -34,24 +39,49 @@ unit timer;
procedure start;
begin
stime:=gt;
{$ifdef USEEPIK}
et:=TEpikTimer.Create;
et.Start;
{$else USEEPIK}
stime:=gt;
{$endif USEEPIK}
end;
procedure stop;
var
{$ifdef USEEPIK}
e : extended;
{$else USEEPIK}
s : cardinal;
{$endif USEEPIK}
begin
{$ifdef USEEPIK}
e:=et.elapsed;
et.Free;
{$else USEEPIK}
etime:=gt;
s:=etime-stime;
if verbosetimer then
write(stderr,s div 1000,'.',s mod 1000,' Seconds');
end;
{$endif USEEPIK}
if verbosetimer then
{$ifdef USEEPIK}
write(stderr,e:0:6,' Seconds');
{$else USEEPIK}
write(stderr,s div 1000,'.',format('%03d',[s mod 1000]),' Seconds');
{$endif USEEPIK}
end;
{$ifdef USEEPIK}
function MSec:cardinal;
begin
Msec:=round(et.elapsed*1000);
end;
{$else USEEPIK}
function MSec:cardinal;
begin
Msec:=etime-stime;
end;
{$endif USEEPIK}
end.