'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 |
Re: 'Stoppuhr'
Delphi-Quellcode:
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.
procedure TestTime;
var Vorher, Nachher, Verstrichen: TDateTime; begin Vorher := now; // hier passiert das, was Du messen willst Nachher := now; Verstrichen := Nachher - Vorher; end; |
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?
|
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) |
Re: 'Stoppuhr'
habe ich tatsächlich! werde ich gleich mal ohne probieren, thx.
|
Re: 'Stoppuhr'
naja, es funktioniert trotzdem nicht.
|
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? |
Re: 'Stoppuhr'
lol* ich möchte nur mal kurz einwerfen, das man mit GetTickCount viel genauer messen kann.
|
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. |
Re: 'Stoppuhr'
Zitat:
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. |
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