Ich habe vor kurzem beschlossen, dass ich von der Verwendung von Millisekunden zu Mikrosekunden für meine Timer-Klasse zu ändern, und nach einigen Recherchen habe ich beschlossen, dass QueryPerformanceCounter ist wahrscheinlich meine sicherste Wette. (Die Warnung auf Boost::Posix
dass es unter Win32 API nicht funktioniert, hat mich ein wenig abgeschreckt). Allerdings bin ich nicht wirklich sicher, wie es zu implementieren.
Ich rufe an, was auch immer ich tun soll. GetTicks()
esque Funktion, die ich verwende, und weise sie der Timer-Funktion startingTicks
variabel. Um die verstrichene Zeit zu ermitteln, subtrahiere ich einfach den Rückgabewert der Funktion von der Variablen startingTicks
und wenn ich den Timer zurücksetze, rufe ich die Funktion einfach erneut auf und weise ihr startingTicks zu. Leider ist es nach dem Code, den ich gesehen habe, nicht so einfach, wie wenn ich einfach QueryPerformanceCounter()
und ich bin mir nicht sicher, was ich als Argument übergeben soll.
2 Stimmen
Ich habe Ramonsters Codeschnipsel genommen und sie hier zu einer Bibliothek zusammengestellt: gist.github.com/1153062 für Follower.
3 Stimmen
Wir haben kürzlich die Dokumentation für QueryPerformanceCounter aktualisiert und zusätzliche Informationen zur richtigen Verwendung sowie Antworten auf häufig gestellte Fragen hinzugefügt. Sie können die aktualisierte Dokumentation hier finden msdn.microsoft.com/de-us/library/Windows/desktop/
0 Stimmen
Ich möchte nur erwähnen __rdtsc ist das, was QueryPerformanceCounter verwendet.