Es scheint, dass die meisten neueren CPUs sowohl von AMD als auch von Intel RDTSC als Zähler mit konstanter Rate implementieren, um die Probleme zu vermeiden, die durch Frequenzänderungen aufgrund von Dingen wie TurboBoost oder Energiespareinstellungen verursacht werden.Wie erkennt man, ob RDTSC einen konstanten Ratenzählerwert zurückgibt?
Da rdtsc viel besser für Performance-Messungen geeignet ist als QueryPerformanceCounter wegen seines viel geringeren Overheads, würde ich es gerne verwenden, wann immer es möglich ist.
Wie kann ich zuverlässig erkennen, ob die rdtsc ein Zähler mit konstanter Rate ist oder nicht?
Großartig. Scheint auch für Intel zu funktionieren: http://StackOverflow.com/questions/3388134/rdtsc-accuracy-across-cpu-cores/4145156#4145156 – Suma
Das Problem hier ist, dass mit dynamischer Uhr aktiviert, Aufgaben würde unterschiedliche Menge von Zeit zur Ausführung. Selbst wenn das rdtsc-Registerinkrement nicht von der Uhr selbst beeinflusst wird, wird die Zeit, die zum Ausführen von Tasks benötigt wird, durch die Taktgeschwindigkeit beeinflusst. –