04/11/2012, 20:09
|
#2
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Quote:
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.
Aber: Eben diese Veränderungen sind es, durch die Software-Overclocking Programme instabil laufen macht. Und auch aus diesem Grund ist Software Overclocking niemandem zu empfehlen, der nicht genau weiß, was er tut. Mal ganz davon abgesehen kann man dadurch in WarRock gebannt werden.
|
Quelle: GamersFirst Forum // Autor: __underScore
|
|
|