Zitat von
fLaSh11:
Zitat von
shmia:
2. kann man mehr als nur eine Zeitmessung vornehmen. Ohne Kapselung in eine Klasse verliert man völlig den Überblick.
3. man kann die Zeit anhalten und die abgelaufene Zeit erst viel später anzeigen
4. dein code-Schnippsel prüft den Returnwert von QueryPerformanceFrequency nicht !!
zu 2. und 3. kann man mit dem QueryPerformanceCounter genauso
zu 4. sollte nur ein kurzes unvollständiges Beispiel sein... natüröich kann ich noch dies und das prüfen und verbessern
Du hast den Vorteil von
Objektorientierter Programmierung noch nicht vollständig verstanden.
Angenommen, du möchtest 10 verschiedene Zeiten messen. Ohne Kapselung in einer Klasse artet das doch in ein Gemetzel aus.
Delphi-Quellcode:
var
freq,time1Start,time1Stop,time2Start,time2Stop, time3Start,time3Stop, ...... : int64;
Jetzt könnte man natürlich einen Record für die Start und Stopzeit bauen und ein Array nutzen:
Delphi-Quellcode:
type
TTimeRec = record
start, stop : Int64;
end;
var
freq : int64;
zeitliste : array[1..10] of TTimeRec;
Der halbe Weg zur
Klasse ist schon getan.
Delphi-Quellcode:
// die objekt-orientierte Variante
// kein "herumgerechne", kein Aufruf von Low-Level-Funktionen
// einfach, sauber & klar
var
zeitliste : array[1..10] of TJclCounter;
begin
zeitliste[1].Start;
...
zeitlist[1].Stop;
...
ShowMessageFmt('Zeit 1: %f',[zeitlist[1].ElapsedTime]);