Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 'Stoppuhr' (https://www.delphipraxis.net/9865-stoppuhr.html)

n00b_on_knees 6. Okt 2003 16:18


'Stoppuhr'
 
Hallo miteinander!

Ich musste 2 verschiedene Programme schreiben, die auf unterschiedliche Weise Zufallszahlen sortieren. Nun soll ich jeweils die Anzahl erhöhen, und feststellen, wie lange das ganze genau braucht, bis eine bestimmte Stelle ausgegeben ist. Ich hatte mir gedacht Timer oder Progressbar, doch leider habe ich ebenfalls keine Ahnung wie ich das genau gestalten könnte. Jemand meinte irgendetwas mit dem Begriff now oder so, habe ich leider aber auch nicht genau verstanden. Wie kann ich berechnen, wie viel Zeit vergangen ist, um das Programm auszuführen?
Ich wäre dankbar für schnelle Antworten.

mfG n00b_on_knees

Phoenix 6. Okt 2003 16:45

Re: 'Stoppuhr'
 
Delphi-Quellcode:
procedure TestTime;
var
   Vorher, Nachher, Verstrichen: TDateTime;
begin
   Vorher := now;

   // hier passiert das, was Du messen willst

   Nachher := now;
   Verstrichen := Nachher - Vorher;
end;
In der Variablen Verstrichen vom Typ TDateTime steht nun also die Differenz vom Zeitpunkt vorher und nachher. Den Wert kannst Du dann einfach weiterverwenden. Dazu gibt die Onlinehilfe auch gute beispiele.

n00b_on_knees 6. Okt 2003 17:59

Re: 'Stoppuhr'
 
Dankeschön! Nur da habe ich noch ein Problem...bei 10000 Zufallszahlen läuft alles Problemlos, doch wenn ich zb nur 11000 erzeugen will, schließt das Programm mit Fehlermeldung, natürlich auch bei höheren werden oder ähnlichen. Wisst ihr was da der Fehler sein könnte?

Niels_ 6. Okt 2003 18:24

Re: 'Stoppuhr'
 
Könnte ja eigentlich nur am Programm liegen; das mit der Zeit ist voll korekt.
Hast du "randomize" vielleicht in der Schleife mit drin? (Sollte da nicht rein)

n00b_on_knees 6. Okt 2003 19:38

Re: 'Stoppuhr'
 
habe ich tatsächlich! werde ich gleich mal ohne probieren, thx.

n00b_on_knees 6. Okt 2003 20:19

Re: 'Stoppuhr'
 
naja, es funktioniert trotzdem nicht.

Phoenix 6. Okt 2003 21:15

Re: 'Stoppuhr'
 
hrm. Was für Sortier-Algorithmen verwendest Du?

Wenn es bei x zahlen klappt, und bei y > x nicht mehr, dann könnte das ggf. an einem Stack Overflow liegen - je nach Algorithmus.

Hast Du ggf. ein bisschen Code und ne genauere Fehlerbeschreibung?

phlux 6. Okt 2003 21:27

Re: 'Stoppuhr'
 
lol* ich möchte nur mal kurz einwerfen, das man mit GetTickCount viel genauer messen kann.

n00b_on_knees 7. Okt 2003 17:11

Re: 'Stoppuhr'
 
@phlux könntest du mir bitte das mit gettickcount erklären?

@phoenix
Ich verwende einen normalen Sortiervorgang, Zahlen werden verglichen ob die Zahl kleiner ist, wenn ja wird das ganze mit einer Hilfsvariable vertauscht.
Der Fehler? Es gibt eine Datei schließen Anweisung, nachdem ich auf den Start Button geklickt habe.

phlux 7. Okt 2003 18:04

Re: 'Stoppuhr'
 
Zitat:

Zitat von n00b_on_knees
@phlux könntest du mir bitte das mit gettickcount erklären?

Servus!
Habe noch einen besseren Weg gefunden, da GetTickCount immernoch nicht genau Genug ist. (Zur Erklärung: GetTickCount misst die Zeit wie lange Windows schon läuft, und gibt diese in Ticks(Millisekunden) wieder). Nichts desto trotz hier jetzt ein Beispiel wie man genau die Zeit misst:
Delphi-Quellcode:
var
  frequenz,
  start,
  ende: TLargeInteger;

resourcestring
  s = 'Gemessene Zeit: %g';

begin
  QueryPerformanceFrequency(frequenz);
  QueryPerformanceCounter(start);
  //Deinen Code hier
  QueryPerformanceCounter(ende);
  ShowMessage(Format(s, [(ende-start)/frequenz]));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Seite 1 von 2  1 2      

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