@Xentar
Das scheint alles nur einen AMD zu betreffen, hab zumindest beim googeln diesen Eindruck gewonnen.
@Delphifan
das hab ich jetzt auch rausbekommen, mann kann zwar sagen Prozess1 soll immer von CPU#1 oder CPU#2 bedient werden, wenn man es aber nicht tut, verteilt Windows die Last. Zumindest sieht man dieses Verhalten im Taskmanager.
@all
hab beim googeln noch mehr gefunden:
Es gibt beim Core 2 Duo noch sowas wie eine Stromsparfunktion. Wenn CPU = Langeweile dann Takt runter.
Heißt bei mir im BIOS C1E (sprich ceh-eins-eh) unter WIKI bin ich bei EIST (Enhanced Intel SpeedStep Technology) gelandet.
Ich bin natürlich immer davon ausgegangen, daß der Prozessortakt = QPFrequency ist und der QPCounter mit dieser Geschwindigkeit inkrementiert wird.
Also mal abgeschaltet und siehe da, QPFrequency zeigt 2,4 GHz an

. Timer laufen wieder alle richtig.
Habs dann mal zur Gegenprobe wieder eingeschaltet, weil ichs den Kollegen zeigen wollte: geht trotzdem noch

. Auf einem Baugleichen, anderem PC gings gleich auf Anhieb richtig.
Also was das jetzt wieder war...
Hab auf jeden Fall das hier in mein Programm eingebaut:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure CheckQPFunctions(); var EndTicks: DWORD; StartQP, EndQP: Int64; begin EndTicks := GetTickCount() + 500; StartQP := QPJetzt(); repeat EndQP := QPJetzt(); until GetTickCount() >= EndTicks; if Not InRange(QPDiff(StartQP, EndQP), 0.95 * QPSec/2, 1.05 * QPSec/2) then ErrorMessage('Error in QueryPerformance* functions, disable EIST/C1E in BIOS!'); end; |
Knulli