Einzelnen Beitrag anzeigen

MisterIXI

Registriert seit: 4. Jun 2015
15 Beiträge
 
Delphi 7 Personal
 
#1

GetTickCount beeinflusst von PC Auslastung

  Alt 4. Jun 2015, 18:38
Hallo!

Ich habe heute im Prinzip eine Stoppuhr fertiggestellt, die ich für genaue zeitmessungen bräuchte.
Um genau zu sein würde ich sie benutzen um "Splits" beim Speedrunnen eines Spiels zu setzen. (wenn ihr nicht wisst, was es ist ist es auch nicht schlimm )

Auf jeden Fall soll die Zeitmessung sehr genau ablaufen, allerdings habe ich gemerkt das bei hoher CPU auslastung (die beim Streamen des Spiels der Fall ist) die Uhr manchmal flakert und auch langsamer läuft als ein profesionell gestalteter timer.

Mein code ist folgender:
Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Time:=Time+GetLocalTime-Tick;
Segment:=Segment+GetLocalTime-Tick;
Label1.Caption:=MSFormat(Time);
Tick:=GetLocalTime;
end;
Ja, ich weiß für die umbennenung war ich noch zu faul, die mach ich oft erst wenns es funktioniert ^^

"MSFormat" Formatiert nur die Zeit, in MS in das Format Min:Sek:Millisek, also sollte das eigentlich auch kein Problem darstellen.

Naja, ich habe es auch so verstanden dass der benannte "Tick" in Ms gemessene Zeit seit dem Start des Computers ist. Und meine Theorie: dass wenn der CPU überfordert wird irgendwas langsamer läuft.

Nach einem frischen Neustart ohne andere geöffnete Programme funktioniert soweit alles prima.
Sobald ich aber aufnahme/ das Streamen Starte habe ich z.T. bei 1 Minute bereits 2 Sekunden abweichung zu dem anderen Programm.


Irgendwelche Ideen?

Vielen Dank im Vorraus!
  Mit Zitat antworten Zitat