AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benötigte Zeit messen

Ein Thema von PierreB · begonnen am 28. Aug 2005 · letzter Beitrag vom 28. Aug 2005
Antwort Antwort
PierreB
(Gast)

n/a Beiträge
 
#1

Benötigte Zeit messen

  Alt 28. Aug 2005, 11:27
Moinsen ihr

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,
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:33
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;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#3

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:38
Moin FriFra,

vielen Dank erstmal, aber leider werden ja jetzt die Millisekunden nicht angezeigt, was eigentlich das wichtigste wäre...
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:43
Wo ist das Problem, die kannst Du doch genauso aus der Variablen Duration auslesen ... Schau Dir mal die möglichen Format-strings für FormatDateTime an
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#5

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:49
Hi,

mess es doch via GetTickCount, das sind Milisekunden (seit Systemstart):
Delphi-Quellcode:
var TicksBefore:integer;
begin
TicksBefore:=GetTickCount;

{ DEIN CODE }

ShowMessage('Das Ausführen dauerte '+IntToStr(GetTickCount - TicksBefore)+' Ticks');
end;
cu
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#6

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:49
Zitat von FriFra:
Wo ist das Problem, die kannst Du doch genauso aus der Variablen Duration auslesen ... Schau Dir mal die möglichen Format-strings für FormatDateTime an
Ja, dass habe ich auch getan, doch neben den Datumsfunktionen gibt es nur noch das:
Zitat:
h Zeigt die Stunde ohne führende Null an (0-23).
hh Zeigt die Stunde mit führender Null an (00-23).
n Zeigt die Minute ohne führende Null an (0-59).
nn Zeigt die Minute mit führender Null an (00-59).
s Zeigt die Sekunde ohne führende Null an (0-59).
ss Zeigt die Sekunde mit führender Null an (00-59).
Aber nichts von Millisekunde....
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:53
fff zeigt die Millisekunden...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#8

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 11:58
Zitat von FriFra:
fff zeigt die Millisekunden...
fff oder ff scheint Delphi 3 nicht zu kennen, bei folgendem Code zeigt er "fff" im Label an.  Form1.Label4.Caption := FormatDateTime('fff', Duration); @Secure: Vielen Dank, so gehts.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 20:32
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%.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Benötigte Zeit messen

  Alt 28. Aug 2005, 20:47
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)]));
Angehängte Dateien
Dateityp: pas csperformance_153.pas (655 Bytes, 123x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz