Hallo liebes Forum
Ich hoffe ich bin hier im richtigen Unterforum mit meinem Problem.
Und zwar würde ich gerne für einen Versuch, den Befehl "Sleep" der CPU ändern.
Hier ein Beitrag aus einem anderen Forum:
So, ich muss allerdings zugeben, dass ich keine Ahnung, wie das Funktioniert.
Weiss jemand von euch wie ich den "Sleep" wert ändere?
Ich hoffe ich bin hier im richtigen Unterforum mit meinem Problem.
Und zwar würde ich gerne für einen Versuch, den Befehl "Sleep" der CPU ändern.
Hier ein Beitrag aus einem anderen Forum:
Jede CPU der 80x86 Reihe (sowie auch der meisten anderen Reihen) hat eine CPU eine interne Frequenz. Deine also vermutlich auch.
Bei jeder instruction (Fachbegriff), die deine CPU ausführt, ändert sich das Clock Cycle Bit. Hierdurch ist ein Maß für die Geschwindigkeit der CPU gegeben. Zeitmessung (Laufzeitbegrenzt) funktioniert nun dadurch, dass durch den CPU Befehl RDTSC (in MASM: rdtsc, \x0F\x31) in den Registern EAX:EDX die Anzahl an vergangenen Clock Zyklen ausgegeben werden kann. Die Laufzeit eines Programms lässt sich dann aus RDTSC und der Frequenz, mit der die CPU Instruktionen ausführt, berechnen.
Jetzt das Problem: Durch Übertakten erhöht sich diese Frequenz.
Übertaktet man im BIOS, ist das kein Problem. Die Systeminterne Frequenzangabe ändert sich auch. Übertaktet man aber via Software, ändert sich diese Frequenzangabe nicht: Der PC ist also schneller, als er angibt zu sein.
Wenn man einen PC also via Software Overclocking um 20% übertaktet, beträgt die Dauer zur Ausführung des Befehls Sleep(1000) nicht exakt eine Sekunde, sondern - näherungsweise - nur 800 Millisekunden.
Setzt WarRock also das Framerate-Limit in dem Thread, der die Present Funktion der D3D9-Schnittstelle ausführt, mit Sleep(...) fest, ist im besten Fall bei 20% Software-Overclocking die Framerate um näherungsweise 20% höher.
So, ich muss allerdings zugeben, dass ich keine Ahnung, wie das Funktioniert.
Weiss jemand von euch wie ich den "Sleep" wert ändere?
