Zeitmessung mit: Real Time-Stamp Counter / “QueryPerformanceCounter“ Funktion ??



  • Hallo!
    Bisher habe ich zwei Möglichkeiten gefunden die eine Zeitmessung präzise durchzuführen.
    a) mit der QueryPerformanceCounter Funktion
    b) mit Hilfe des Real Time-Stamp Counter

    In der MSDN habe ich nur gefunden das die QueryPerformanceCounter auf den „high-resolution performance counter“ zugreift. Dieser ist bei mir mit 3579545 Hz getaktet.
    Da ich einen P4 2.4 GHz habe, ist der Real Time Counter mit 2405.45 Mhz getaktet.
    In einigen Newsgroups habe ich gelesen das der Real Time Counter genauer sein soll.
    Ich verstehe jedoch nicht warum. ???
    Die Messung müsste doch mit einem höher getaktetem Counter wie z.B. dem „high-resolution performance counter“ genauer sein.

    Da in Windows die Zeit sowieso nicht genau gemessen werden kann, würde ich sagen dass es egal ist welche Methode man zum Zeit messen benutzt. Jedoch würde mich interessieren was die genauen Unterschiede sind.

    Was meint Ihr dazu?



  • In der MSDN habe ich nur gefunden das die QueryPerformanceCounter auf den „high-resolution performance counter“ zugreift. Dieser ist bei mir mit 3579545 Hz getaktet.

    3579545 Hz entspricht ziemlich genau 3,579545 MHz. Das ist entschieden weniger als die 2405,45 MHz des Real Time-Stamp Counters, oder? 😉

    Nichts kann genauer sein als rdtsc. Denn dieser Zähler wird AFAIK bei jedem Takt um eins hochgezählt. Bei 2.4 GHz also 2.4 Milliarden Mal pro Sekunde.

    Für 99.99% aller Aufgaben reichen aber 3.5MHz bei weitem aus. Eine höhere Genauigkeit bringt unter Windows sowieso fast nichts, da nicht garantiert ist, dass dein Programm ununterbrochen ausgeführt wird (Multitasking).


Anmelden zum Antworten