Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 15:00
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]);
Andreas
  Mit Zitat antworten Zitat