rdtsc



  • hallo leute

    hab mich gestern n bisschen mit dem rdtsc rumgespielt.

    __asm 
            {
            rdtsc
            mov value1, eax
            mov value2, edx
            }
    
        __asm
            {
            rdtsc
            mov value3, eax
            mov value4, edx
            }
    

    wenn ich nun die taktdiffernz berechne, komme ich immer auf 84 takte. is das normal ? oder woran liegt das ? nunja, hab dann immer 84 abgezogen, damit ich bestimmte befehle bzw. funktionen messen kann. bei einem normalen mov-befehl komme ich auf 4 takte. auf nem P4. sollte das nicht nur ein takt sein ?

    Meep Meep



  • Das deine Differenz Müll liefert mag daran liegen, dass du keine einzige Rechenoperation ausführst.
    Wenn rdtsc doch sowieso in eax speichert kannst du doch auch so mit inline-asm eine Funktion machen. Das funktioniert:

    __int64 rdtsc(void) {
      __asm rdtsc;
    }
    

    Ausserdem gibt es noch clock und speziell in der WinAPI High-Resolution Timer 😉 .



  • dank dir

    Meep Meep


Anmelden zum Antworten