Tipp 0125 Genaue Zeitmessung
Autor/Einsender:
Datum:
  Klaus D. Raudszus
26.06.2006
Entwicklungsumgebung:   VB.Net 2003
Framework:   1.1
Das Programm zeigt den Einsatz der API-Funktionen QueryPerformanceCounter und QueryPerformanceFrequency, die dann zum Einsatz kommen, wenn mit Date, DateTime und Timespan die Auflösung nicht mehr gemessen wird.
Die Messungen im Millisekunden-Bereich sind mit DateTime und TimeSpan nicht möglich, da die systembedingte Auflösung bei ca. 12 ms liegt und sehr stark schwanken kann. Um kleinere Zeiten zumessen, wird der Hardware-Counter benutzt, der über die beiden API-Funktionen abgefragt wird. Der Vollständigkeit halber muss auch gesagt werden, dass die Ergebnisse mit den API-Funktionen schwanken können, da Windows kein Echt-Zeit-Betriebssystem ist.
 
'Die Struktur MeasureVars stellt Felder und Funktionen für die
'Zeitmessung zur Verfügung
Public Structure MeasureVars
  Public pcs As Long
  Public pce As Long
  Public pf  As Long

  Private Function PerfomanceTime() As Double
    Return CType(((pce - pcs) / pf * 1000), Double)
  End Function

  Public Function MeasureTime(ByVal str As String) As String
    Return String.Format(str & "{0:0.000} ms", Me.PerfomanceTime)
  End Function
End Structure

'Die Klasse QPCounter stellt die API-Funktionen zur Abfrage des
'Hardware-Counters
Public Class QPCounter
  Public Declare Auto Function QueryPerformanceCounter Lib _
        "Kernel32.dll" (ByRef performanceCount As Long) As Boolean

  Public Declare Auto Function QueryPerformanceFrequency Lib _
        "Kernel32.dll" (ByRef frequency As Long) As Boolean
End Class
 
Weitere Links zum Thema
Zeitmessung mit TimeSpan (Countdown)
Zeit exakt messen (Stopwatch)

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (18,1 kB) Downloads bisher: [ 722 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 23. Januar 2012