Allerdings muß man dazu sagen, das sich die Problematik mit den verschiedenen TSC in den Cores eigentlich nicht mehr stellt. Zum einen gibt es von M$ bereits einen Fix zu diesem Thema (damals flippten verschiedene Games eben wegen dieser doppelten TSC's aus) - ich hab das nicht analysiert, mich würde es aber nicht wundern, wenn M$ die
API-Routinen für QPC auf Core 0 (der immer existiert) lenkt.
Zum zweiten kann man auch dafür sorgen, das das Meßprogramm nur auf einem Core läuft.
@amateurprofi: Die Routine "test2" zum Beweis der differenz zwischen QPC und TSC würde ich nochmal genauer beäugen. Bei der QPC-Messung mißt du sämtlichen Laufzeit-Overhead von GetTickCount z.B. mit. Kein Wunder, das sich hier Differenzen auftun. Besser wäre:
Delphi-Quellcode:
queryperformancecounter(qpc);
sleep(2000);
queryperformancecounter(qpc1);
Und dies für die anderen Meßmethoden genauso.