QueryPerformanceCounter: Ein Leitfaden zur Timing-Präzision
Um die Präzision Ihrer Timer-Klasse zu verbessern, haben Sie sich für QueryPerformanceCounter entschieden. Die Implementierung kann jedoch schwer fassbar sein.
Der Kern von QueryPerformanceCounter liegt in der LARGE_INTEGER-Struktur, die eine 64-Bit-Ganzzahl speichert, die den Zeitstempel in Anzahlen darstellt. Um die Häufigkeit des Zählers zu bestimmen, verwenden Sie QueryPerformanceFrequency und weisen seine Ausgabe PCFreq zu, was die Anzahl der Ticks pro Sekunde darstellt.
Als nächstes initialisiert StartCounter den Zähler, indem es den aktuellen Zeitstempel erfasst und ihn CounterStart zuweist. GetCounter ruft den aktuellen Zeitstempel ab und berechnet die verstrichene Zeit von CounterStart, indem es das Ergebnis durch PCFreq dividiert, um es in Sekunden umzuwandeln.
Für Mikrosekundengenauigkeit reduzieren Sie PCFreq auf den Tausendstelteil. Alternativ können Sie die Division durch 1000 entfernen, um in Sekunden zu messen.
Der bereitgestellte Code veranschaulicht die Verwendung von QueryPerformanceCounter. Der Aufruf von StartCounter startet den Timer und GetCounter gibt die seit seinem letzten Aufruf verstrichene Zeit zurück.
Dieser Ansatz gewährleistet Ihnen ein präzises Timing und bietet eine deutliche Verbesserung gegenüber Millisekundenintervallen.
Das obige ist der detaillierte Inhalt vonWie kann QueryPerformanceCounter ein präzises Timing in C erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!