Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stopuhr/Laufzeit (https://www.delphipraxis.net/41579-stopuhr-laufzeit.html)

huefte 5. Mär 2005 13:59


Stopuhr/Laufzeit
 
Hallo Zusammen

bin eigentlich noch ein anfänger, hoffe aber dass ihr mir helfen könnt! In der Schule nehmen wir Sortier-Algorithmen ducrh. Als Zusatz will ich nun in mein Programm, das 4 Algorithmen umfasst, eine Funktion einbauen, die anzeigt wie lange das Sortieren gedauert hat! Beispielsweise in einem Edit-Feld ausgedruckt wird, oder ein Label sichtbar wird, in dem die Zeit steht.

Vielen Dank für eure Hilfe

jfheins 5. Mär 2005 14:03

Re: Stopuhr/Laufzeit
 
Nimm eine Variable Zeit, mach vor dem algo ein Zeit := Gettickcount; und am ende sowas wie showmessage (inttostr(GettickCount - zeit));
(in ms)

huefte 5. Mär 2005 14:13

Re: Stopuhr/Laufzeit
 
Sowas hab ich schon versucht!

Mein COde sieht jetzt so aus

Code:
Zeit:=GettickCount;
Quick(links,rechts);
Endzeit:=(GettickCount-Zeit);
Showmessage(IntToStr(Endzeit)+'ms');
Er zeigt mir "0 ms" an.... !?!

jfheins 5. Mär 2005 14:22

Re: Stopuhr/Laufzeit
 
Vieleicht hast du zuwenige Sachen zum Sortieren ???

huefte 5. Mär 2005 14:23

Re: Stopuhr/Laufzeit
 
es sind nur 10. ich machs dann halt mal mit 100!

huefte 5. Mär 2005 14:27

Re: Stopuhr/Laufzeit
 
ist immer noch bei 0 ms! habs jetzt mal mit 100 versucht

jfheins 5. Mär 2005 14:27

Re: Stopuhr/Laufzeit
 
tztztz ... um gute Erfebisse zu bekommen, solltest du das schon so mit min. 10.000 machen ...

Dann erkennst du auch Unterschiede in den Zeiten der versch. Sortieralgos ...

huefte 5. Mär 2005 14:30

Re: Stopuhr/Laufzeit
 
auch bei 100000 immer noch 0!

jfheins 5. Mär 2005 14:35

Re: Stopuhr/Laufzeit
 
:shock: Und er sortiert auch ????

Dann mach ma:
Delphi-Quellcode:
queryperformancecounter (anfang);
// ...
queryperformancecounter (ende);
queryperformancefrequency (frq);
zeit = (ende - anfang) / frq;

whiteshark 5. Mär 2005 14:37

Re: Stopuhr/Laufzeit
 
probier es mal so:
Delphi-Quellcode:
var summe, von, bis:integer;
begin
von:=gettickcount;
quick (..);//deine Sortierfunktion
bis:=gettickcount;
summe:=bis-von;
LabelZeit:=strtoint(summe)+ 'ms'.
end;
wir haben das zur Zeit auch in der Schule ;-)

Nils_13 5. Mär 2005 14:41

Re: Stopuhr/Laufzeit
 
Wenn es nur um die Zeit dabei geht ist es doch einfach!

*mist*

huefte 5. Mär 2005 14:44

Re: Stopuhr/Laufzeit
 
Jetzt gehts endlich! Danke für deine Hilfe. Hatte einen doofen fehler gemacht! für 10.000 braucht er nun 1125ms! Ist das viel?

malo 5. Mär 2005 14:48

Re: Stopuhr/Laufzeit
 
Zitat:

Zitat von Nils_13
Wenn es nur um die Zeit dabei geht ist es doch einfach!

Falls ja: Timer -> wenn aktiviert -> addiere eine zahl (z.B. 1 Sekunde) ins editfeld pro Sekunde per Timer -> fertig

Müsste der Timer nicht entsprechend langsamer / ungenauer sein, als die GetTickCount-Function, und außerdem entsprechend mehr ressourcen verbrauchen? Ein Timer kann imho keine wirklich genauen Ergebnisse liefern (besonders, wenn es auf einzelne millisekunden ankommt). ;)

whiteshark 5. Mär 2005 14:48

Re: Stopuhr/Laufzeit
 
naja, es ist normal!
Die Zeit hängt von deiner Rechenleistung ab. Mit "gettickcount" sagt dir, wielange dein Rechner schon an ist.

malo 5. Mär 2005 14:49

Re: Stopuhr/Laufzeit
 
Zitat:

Zitat von huefte
Jetzt gehts endlich! Danke für deine Hilfe. Hatte einen doofen fehler gemacht!

Welcher Fehler war das denn? Wenn jemand mal das gleiche Problem hat, wird ihn die Lösung des Problem sicher interessieren :)

//edit: Wegen der Frage "ist das viel": Du musst imho alle Sortier-algos auf deinem PC einzeln messen und vergleichen. Und vorher am besten ALLE Programme schließen, die du nicht brauchst und die meisten Prozesse beenden, die nebenher laufen, sonst werden deine Ergebnise verfälscht (weil ein Programm dann z.B. kurzzeitig ein wenig mehr Rechenleistung braucht, als sonst...). ;)

Nils_13 5. Mär 2005 14:50

Re: Stopuhr/Laufzeit
 
gut.

huefte 5. Mär 2005 14:51

Re: Stopuhr/Laufzeit
 
ja ich hatte vergessen das Array zu ändern. Anfängerfehler halt *schaem*

okay. danke für eure hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 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