| |
|
|
- Seite 1 - |
|
Jac de Lad | Hallo Frank.
Seit einigen Tagen versuche ich folgenden Delphiquelltext für den XPIA umzuschreiben:
function GetCPUSPeed():Longword;stdcall;
var timerhigh,timerlow:dword;
begin
SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_TIME_CRITICAL);
try
asm
dw 310Fh
mov TimerLow,eax
mov TimerHigh,edx
end;
Sleep(1000);
asm
dw 310Fh
sub eax,TimerLow
sub edx,TimerHigh
mov TimerLow,eax
mov TimerHigh,edx
end;
Result:=Round(TimerLow/1000000);
finally
SetPriorityClass(GetCurrentProcess,NORMAL_PRIORITY_CLASS);
end;
end;
Leider ist bei mir aber nichts rausgekommen. Wenn du oder jemand anderes Lust dazu hat kann er/sie/es den ja mal umschreiben...
Jac
PS: Der Quelltext gibt die aktuelle (nicht die nominale) Frequenz der CPU in MHz zurück. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.05.2007 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
Frank Abbing | Ein Double zurück zu liefern ist wohl nicht nötig, soviel Power hat deine CPU auch nicht, um diesen Wert in 64 Bit darstellen zu müssen... ... die Bits werden ggf. vor der Rechnung benötigt. Hab eine neue Version erstellt, die diesen Fall nun abdecken müsste. Diesen Code hab ich auch zu XPIA gepackt: KompilierenMarkierenSeparieren {$cleq}
Declare x&
Cls
Print
Print Ermittelte Frequenz der CPU dieses Computers: ;
AsmStart GetCpuSpeed
.data
var1 dq 0
var2 dq 1000000
var3 dq 0
.code
.686p
invoke GetCurrentProcess
invoke SetPriorityClass,eax,REALTIME_PRIORITY_CLASS
invoke GetCurrentThread
invoke SetThreadPriority,eax,THREAD_PRIORITY_TIME_CRITICAL;
rdtsc
lea edi,var1
mov [edi],eax
mov [edi+4],edx
invoke Sleep,1000
rdtsc
lea edi,var1
sub eax,[edi]
sbb edx,[edi+4]
mov [edi],eax
mov [edi+4],edx
fild var1
fild var2
fdiv
fistp var3
invoke GetCurrentProcess
invoke SetPriorityClass,eax,NORMAL_PRIORITY_CLASS
lea edi,var3
mov eax,[edi]
AsmEnd(x&)
Print Str$(x&)+ MHz.
WaitInput
End
Wirklich interessant, dieser RDTSC Befehl! |
|
|
| |
|
|
|
Dietmar Horn | Hallo Frank,
ich habe diesen Code gerade mal durch XPSE und XPIA gejagt.
Auf meinem AMD Sempron 3200+ mit XP Home und 512 MB RAM zeigt Hardinfo 2005 jedesmal exakt 1795 MHz an, was meiner Meinung nach in etwa hinkommen könnte.
Dein Code scheint bis jetzt jedoch leider eher zu schätzen.
Bei mehrmaligen Starts der von XPIA / XPSE erzeugten CPUSPEED.EXE werden immer unterschiedliche Werte (meist im Bereich von 950 MHZ bis 990 MHz) angezeigt. Gelegentlich sind aber auch Ausreißer bis zu knapp 1500 MHz dabei.
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 17.05.2007 ▲ |
|
|
|
|
Frank Abbing | Tatsächlich? In Systemsteuerung/System zeigt Windows dir unten bei Computer: die Geschwindigkeit deiner CPU an. In meinem Fall passt das auch immer bis auf einen MHz genau an.
Das Prinzip des Codes ist ja nicht von mir, hab nur Jacs Code umgesetzt. Funktioniert denn meine erste Codeumsetzung (etwas weiter oben) korrekt? Ansonsten kann ich dir nicht sagen, woran das liegen könnte. Die Messung wird vom Pentium-Mnemonic RDTSC durchgeführt. Den kannte ich selber bis dato nicht.
Es könnte auch daran liegen, das beim Start des Programms Laufwerksaktivitäten die Messung stören. In dem Fall füge bitte mal ein Sleep 3000 hinter CLS ein. |
|
|
| |
|
|
|
Dietmar Horn | Bei beiden Codes sind die Werte in etwa identisch, siehe oben.
In der Systemsteuerung werden bei mir immer 987 MHz angezeigt. Das halte ich aber ebenfalls für wenig realistisch. Nun verstehe ich bald gar nichts mehr ...
Werde das morgen Abend mal auf ein paar älteren PCs im Kabinett testen.
Gruß Dietmar. |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 17.05.2007 ▲ |
|
|
|
|
Frank Abbing | Ok, dann decken sich die Werte in etwa mit der Systemsteuerung. Du kannst den Test verlängern (Sleep-Befehl), dann wird der Wert genauer. Und dazu passend die Division anpassen. |
|
|
| |
|
|
|
Dietmar Horn | Ein Sleep 3000 ändert auch nichts an den Werten.
Heute zeigt mir auch Hardinfo abwechselnd mal 985 MHZ und mal 1795 MHz an. Offensichtlich scheint ein Rechner wirklich auch nur ein Schätzer zu sein.
Na ja - wenigstens scheint mein jetziger PC etwas schneller zu sein, als mein erster 386 DX 40 mit 4 MB RAM von 1992 ...
Dennoch laufen Word 2000 und Corel Draw 10 nicht schneller als ehemals Word 5.5 und Corel Draw 3.0 auf meinem 386er. Auch Profan² 3.3 unter Win 3.1 war damals ein Rennpferd im Vergleich zum heutigen XProfan 10.0 unter Win XP gewesen ...
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 17.05.2007 ▲ |
|
|
|
|
Frank Abbing | Vielleicht gibt deine CPU bald den Geist auf...
Ich selber finde, XProfan10 ist ziemlich flott geworden. Zumindest im Gegensatz zur 7er Version. 6.6 hatte ich nie, nur 4.5. Und das war doch sehr lahm. Kann aber alles täuschen, weil die Rechner ja immer schneller werden. |
|
|
| |
|
|
|
Dietmar Horn | Hmm .. habe das Teil aber erst im August oder September 2006 gekauft.
Das wäre natürlich schön mit dem Geist aufgeben, denn ich habe ja noch Garantie bzw. Gewährleistung drauf.
Falls mich unsere MMJ-HY-Indianer am Freitagabend nicht allzu sehr nerven, werde ich die CPU-Codes auf Oldtimern mit Win 95, Win98, Win ME und Win 2000 testen.
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 17.05.2007 ▲ |
|
|
|
|
Dietmar Horn | Sorry, Frank.
aber das mit dem Code-testen-wollen usw. hatte meinerseits leider nicht geklappt.
Das lag jedoch nicht an unserer prima MMJ-HY-Truppe.
Ich danke allen MMJ-Indianern für ihr Verständnis für meine aktuelle Befindlichkeit seit Freitagabend (18.05.2007).
Siehe mein geändertes Avatar ...
Danke!
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 19.05.2007 ▲ |
|
|
|
|
Frank Abbing | Selbstverständlich. Tut mir sehr leid. |
|
|
| |
|
|
|
| Franks Messung gibt IMHO nur auf Pentiums die MHz aus welche Ihr gerne sehen wollte. *g* |
|
|
| |
|
|
|
Jac de Lad | Die DLL mit dem Urquelltext funktioniert auf allen Systemen. Ich werde die mal compilieren (heute oder morgen oder so...). |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.05.2007 ▲ |
|
|
|