Ich möchte den High Performance Event Timer (HPET) für ein Profiling-Tool verwenden, um schnell sehr präzise Messungen durchzuführen. timeGetTime bietet keine ausreichende Auflösung bei 1 ms, und QueryPerformanceCounter ist beim Lesen viel langsamer, als ich es möchte. Ich bin bei der Erforschung des Problems auf den HPET gestoßen, aber ich kann keine Proben sehen, wie man wirklich darauf kommt.
So kann ich es direkt verwenden (Assembly ist in Ordnung), oder muss ich mich auf die Multimedia- / Hochleistungs-Timing-Tools verlassen, die bereits in der Win32-API integriert sind?
Ich fand diese Informationen beim Ausgraben, und es scheint, dass es am kostengünstigsten sein kann Weg. Ich werde es ausprobieren, wenn ich den Mut habe, in die Montage zu graben. :)
AKTUALISIEREN
Ich habe das mit meinem Profiler getestet. obwohl ein bisschen schneller, es scheint, ich habe noch Tonnen von anderen Overhead :( (Ich kümmerte mich nicht um Timing als ich es schien nicht genug nutzen)
Ich bin auch an der Verwendung des HPET interessiert, aber als Timer. Wie ich es verstehe, greifen QueryPerformanceCounter und QueryPerformanceFrequency tatsächlich auf den Zähler und die Uhr für den HPET zu, und dies funktioniert unter Windows XP (siehe zum Beispiel Ссылка ).
Was Timing-Code betrifft, denke ich, dass Sie mit QueryPerformanceCounter tatsächlich Zugriff auf den Zähler erhalten, der die Basis von HPET bildet, und das ist alles im Chipsatz (und nicht im Prozessor).