Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#5

AW: Firebird + ZEOS: Erste query langsam

  Alt 9. Jul 2010, 21:38
Zitat:
Also bei 10ms würde ich ja fast schon von einer Messungenauigkeit des Timers sprechen... Womit hast Du gemessen?
Die Messroutine sieht folgendermaßen aus:

Delphi-Quellcode:

procedure CalibrateCPU() ;
var
 t,t2 : Int64 ;
begin
  t := GetTickCount;
  while t=GetTickCount do;
  t2 := GetCPUTicks;
  while GetTickCount<(t+400) do;
  t2 := GetCPUTicks - t2;
  CPUClock := 2.5e-6*t2;
end;

// CPU Cycles Count
function GetCPUTicks: Int64;
asm
   DB $0F,$31
end;

// Start Time Measurement
procedure StartGetTime() ;
begin
    ticks := GetCPUTicks() ;
end ;


// End Time Measurement
function EndGetTime(const InMilliSeconds: boolean = true) : OleVariant ;
var
  ticks2 : Int64 ;
begin
    ticks2 := GetCPUTicks() - ticks;
    if not InMilliSeconds then
      Result := ticks2 / CPUClock
    else
    Result := FloatToStrF((ticks2 / CPUClock) / 1000,fffixed,15,1) ;
end;
Beim Programmstart wird einmal CalibrateCPU() ausgeführt, und dann vor der Query ein StartGetTime() und direkt nach der Query ein EndGetTime(); ausgeführt.




Zitat:
Wenn nur 10 ms sind - gähn.
Hast eigentlich recht, aber das kann für mein Vorhaben u.U. doch relevant sein..naja egal

Zitat:
Oder Zeos baut die Verbindung zum Server erst zu diesem Zeitpunkt auf
Es gibt keinen "Server", ist ja embedded. Und das "connect" zur Datei passiert definitiv schon vorher.

Geändert von blackfin ( 9. Jul 2010 um 21:43 Uhr)
  Mit Zitat antworten Zitat