![]() |
Dauer einer Schleife in Sek. messen?
Hallo,
Ich möchte die Dauer einer Schleife in Sekunden messen, dazu speicher Ich die aktuelle Zeit vor dem Schleifeneintritt in eine Variable vom Typ TDateTime
Delphi-Quellcode:
und nach dem die Schleife vorbei ist, wird wieder die derzeitige Zeit in einer Variable vom gleichen Typ gespeichert,
Time1 := Time;
Delphi-Quellcode:
.
Time2 := Time;
Danach will ich die Differenz der beiden Zeiten mir der folgenden Funktion ermitteln:
Delphi-Quellcode:
Habe mir die Funktion von Delphitreff kopiert und wenig bearbeitet weil Ich nur die Sekunden haben möchte.
function DateTimeDiff(date1, date2: TDateTime): string;
var secs: integer; difference: real; begin difference:=date2-date1; difference:=Frac(difference)*60; secs:=round(difference-Frac(difference)); result:=IntToStr(secs)+' Sekunden'; end; Also mein Problem ist jetzt, dass mir nur Null ausgegeben wird, habe auch versucht mit sleep() die Schleife künstlich in die Länge zu ziehn aber mir wird trotzdem nur Null zurückgegeben. Vielleicht kennt ja jemand eine bessere Funktion um die Differenz zu berechnen oder vielleicht hab ich mir auch einen Fehler in die Funktion eingebaut als Ich sie bearbeitet habe. oder man kann einfach nicht die Zeit zwischen Schleifenein- und austritt messen... Viel zu viele mödliche Probleme :( mfg Alex |
Re: Dauer einer Schleife in Sek. messen?
Hai Borschti,
nehme für den "Start- und Endwert" lieber ![]() |
Re: Dauer einer Schleife in Sek. messen?
Wahrscheinlich liegt es daran, daß die Schleife weniger als eine Sekunden braucht, das führt zum Ergebnis 0.
Benutze GetTickCount. Das ist millisekundengenau. Am Anfang mit GetTickCount ersten Wert holen. Nach der Schleife nochmal den Wert holen. Zweiten Wert vom ersten abziehen und du hast deb Millisekundenunterschied. |
Re: Dauer einer Schleife in Sek. messen?
![]()
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var StartTime: DWORD; EndTime: DWORD; i: Integer; begin StartTime := GetTickCount; for i := 0 to 1000 do Sleep(10); EndTime := GetTickCount; ShowMessage(IntToStr((EndTime - StartTime) div 1000) + ' Sekunden'); end; |
Re: Dauer einer Schleife in Sek. messen?
Danke für die schnellen Antworten, ich werds gleich mal ausprobieren :D
|
Re: Dauer einer Schleife in Sek. messen?
Hat auf anhieb geklappt, danke nochmal :-D
|
Re: Dauer einer Schleife in Sek. messen?
|
Re: Dauer einer Schleife in Sek. messen?
Zitat:
![]() Mfg |
Re: Dauer einer Schleife in Sek. messen?
Zitat:
|
Re: Dauer einer Schleife in Sek. messen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz