Kontakt
DSVGO
Historie | |
05.07.2001 | Beispiel hinzugefügt |
31.07.2000 | Erste Version |
Zur genauen Zeitmessung bietet das Betriebssystem einen alternativen Timer mit einer höheren Auflösung, als die von VB zur Verfügung gestellten Funktionen Timer
oder gar Now
.
Das folgende Code-Fragment zeigt, wie man die Dauer mehrerer Aktionen misst:
Dim t0 As Double Dim t1 As Double Dim t2 As Double t0 = QPTimer DoAktion1() t1 = QPTimer DoAktion2() t2 = QPTimer Print "Dauer Aktion 1:", t1 - t0 Print "Dauer Aktion 2:", t2 - t1 Print "Dauer zusammen:", t2 - t0
Im Deklarationsteil eines Moduls werden folgende API-Routinen bekannt gemacht:
Private Declare Sub QueryPerformanceCounter _ Lib "kernel32" (lpPerformanceCount As Currency) Private Declare Sub QueryPerformanceFrequency _ Lib "kernel32" (lpFrequency As Currency)
Hier der eigentliche Code:
Public Function QPTimer() As Double Static Takt As Currency Dim Dauer As Currency If Takt = 0 Then 'einmal die Taktfrequenz bestimmen: QueryPerformanceFrequency Takt End If 'aktuelle Zeit holen: QueryPerformanceCounter Dauer 'Zeit in Sekunden umrechnen: QPTimer = Dauer / Takt End Function
Diese Funktion gibt übrigens die Zeit in Sekunden an, die seit dem Starten von Windows vergangen sind.
© Jost Schwider, 30.04.2000-05.07.2001 - http://vb-tec.de/timer.htm