![]() |
Benötigte Zeit messen
Moinsen ihr :hi:
Ich steh grad bissl auf'm Schlauch: Wie kann man die Zeit, die z.B. eine Funktion braucht, messen ? Kleines Beispiel: Ich hab ne Funktion die einfach zwei Zahlen addiert, nun würde ich gerne Wissen wie lange die Funktion dafür gebraucht hat (Minuten/Sekunden/Millisekunden). Macht man sowas einfach mit nem Timer oder wie ? Thx schonmal, |
Re: Benötigte Zeit messen
Delphi-Quellcode:
var
StartTime: TDateTime; Duration: TDateTime; begin StartTime := Now; { Dein Code } Duration := Now - StartTime; Form1.LabelHH.Caption := FormatDateTime('hh', Duration); Form1.LabelMM.Caption := FormatDateTime('nn', Duration); Form1.LabelSS.Caption := FormatDateTime('ss', Duration); end; |
Re: Benötigte Zeit messen
Moin FriFra,
vielen Dank erstmal, aber leider werden ja jetzt die Millisekunden nicht angezeigt, was eigentlich das wichtigste wäre... |
Re: Benötigte Zeit messen
Wo ist das Problem, die kannst Du doch genauso aus der Variablen Duration auslesen :roll: ... Schau Dir mal die möglichen Format-strings für FormatDateTime an :!:
|
Re: Benötigte Zeit messen
Hi,
mess es doch via GetTickCount, das sind Milisekunden (seit Systemstart):
Delphi-Quellcode:
cu
var TicksBefore:integer;
begin TicksBefore:=GetTickCount; { DEIN CODE } ShowMessage('Das Ausführen dauerte '+IntToStr(GetTickCount - TicksBefore)+' Ticks'); end; |
Re: Benötigte Zeit messen
Zitat:
Zitat:
|
Re: Benötigte Zeit messen
fff zeigt die Millisekunden...
|
Re: Benötigte Zeit messen
Zitat:
Delphi-Quellcode:
@Secure: Vielen Dank, so gehts. :-)
Form1.Label4.Caption := FormatDateTime('fff', Duration);
|
Re: Benötigte Zeit messen
1. Arbeitet die Now Funktion nicht genau genug, die würd ich für so Sachen nicht nehmen. Hat nur, glaub ich ne Genauigkeit von 1/13 Sekunde.
2. Gettickcount ist die bessere Variante, die liefert dir in Millisekunden die System Uptime. aber ich denke mal, um 2 Zahlen zu addieren, kommst du damit auch nicht weit, weil das wohl nicht in ms messbar ist. Wenn da 1 rauskommen würde, dann ist dieser Wert sehr mict Vorsicht zu geniessen. Was heisst denn 1 ms... Das können 0,5ms sein, das können 1,49ms sein... Dein Wert schwankt also um +/- 0,5ms, also hats du nur eine Genauigkeit von 50%. |
Re: Benötigte Zeit messen
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt einen sehr genauen Zeitmesser unter Windows. Hier ist er gekapselt. Der Code ist so banal, das es peinlich ist, aber es klappt ganz gut. Ganz genau ist es allerdings nicht, weil es ja auch ein paar microsekunden dauert, die Zeit selbst zu ermitteln.
Aufruf mit:
Delphi-Quellcode:
StartTimer (ID);
... Showmessage (Format ('Hat %6.6f sekunden gedauert',[StopTimer(ID)])); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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