Result := TimerLo / (1000.0 * DelayTime); except Result := 0; end; end;
2 Hinweise seien gegeben: auf ganz alten CPUs (386er?) läuft das ned; und der andere: als Funktionswert wird ein Wert vom Typ Extended zurückgegeben. Dies ist ein extrem hoher Wertebereich mit Nachkommastellen. Um ihn ordentlich nutzen zu können, solltet ihr ihn formatieren - z.B. so:
a := FormatFloat('0',CalcCPUSpeed); Writeln(a);
Hier eine kleine Konsolen-Anwendung als Beispiel:
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;
var a: String;
function CalcCPUSpeed: Extended; const DelayTime = 500; var TimerHi, TimerLo: DWord; PriorityClass, Priority: Integer; begin try PriorityClass := GetPriorityClass(GetCurrentProcess); Priority := GetThreadPriority(GetCurrentThread);
Result := TimerLo / (1000.0 * DelayTime); except Result := 0; end; end;
begin Writeln('Realwert: ',CalcCPUSpeed); Writeln; Writeln('Erste Art der Darstellung:'); a := FormatFloat('0',CalcCPUSpeed); Writeln(a,' MHz'); Writeln; Writeln('Zweite Art der Darstellung:'); a := FormatFloat('0,',CalcCPUSpeed); Writeln(a,' MHz'); Writeln; Writeln('Dritte Art der Darstellung (im Code):'); a := FormatFloat('0," MHz"',CalcCPUSpeed); Writeln(a); Readln; end.
____________________ Windows ist wie Macintosh - Most Applications Crash; If Not, The Operating System Hangs.
Re: CPU-Speed messen (nicht auslesen)
funzt sogar! (1541 MHz) ^^
allerdings habe isch hier schon probleme zurchzublicken... :(
Der Tempel des Schreckens ca. 24 % fertig!
noch zu programmierende Handlungs-Happen: 335 / 400
Aktuelle Anzahl der Zeilen:3.174
Aktuelle Größe der EXE-Datei:424.960 Byte
Gepackt mit UPX-Scrambler:253.440 Bytes (59,64 % verkleinert)
Letzte Aktualisierung: 27.02.05 - 04:56Uhr
Re: CPU-Speed messen (nicht auslesen)
mach doch mit "*" markierungen in deinen Quelltext rein, dann haste ne bessere Übersicht
also zum Beispiel *Kapitel 1*
------------------------------------------------ eX simply blue...
Re: CPU-Speed messen (nicht auslesen)
ehm... zum einen mach isch das (sonst hat man gar keinen überblick mehr *gg*) und zum anderen mach isch das immer mit { ...
isch kann euch ja mal eine Prozedur hier rein stellen (siehe meinen Threat)!
Der Tempel des Schreckens ca. 24 % fertig!
noch zu programmierende Handlungs-Happen: 335 / 400
Aktuelle Anzahl der Zeilen:3.174
Aktuelle Größe der EXE-Datei:424.960 Byte
Gepackt mit UPX-Scrambler:253.440 Bytes (59,64 % verkleinert)
Letzte Aktualisierung: 27.02.05 - 04:56Uhr
Re: CPU-Speed messen (nicht auslesen)
Zitat: ~[GøG
~] funzt sogar! (1541 MHz) ^^
allerdings habe isch hier schon probleme zurchzublicken... :(
ja, is ned einfach wenn die Leerzeichen vorne Zurückgenommen werden.
ich probier mal ob es mit diesem "Code"-Command die Leerzeichen beibehält:
procedure TestFunktion; Leckmich; if I := 10 downto 0 do begin NochmehrLecken; // Eingerückter Kommentar end; end;
so wenn dieses zeuch richtig dargestellt wird, kann man den Code-Tag verwenden (sieht im zusammenhang mit Pascal vielleicht ned gut aus... aber wen interessierts).
____________________ Windows ist wie Macintosh - Most Applications Crash; If Not, The Operating System Hangs.
Re: CPU-Speed messen (nicht auslesen)
nein.... wird nicht angezeigt....
*grummel*
wie wärs größere Codes/undurchschaubare Codes jetzt nur noch als RTF-Dokument oder so zu posten?
____________________ Windows ist wie Macintosh - Most Applications Crash; If Not, The Operating System Hangs.
Re: CPU-Speed messen (nicht auslesen)
gibts da nicht extra ein forum-tag, dass codes richtig (also mit Leerzeichen) dargestellt werden? also das war fürs vbulletin en plugin, vielleicht funzt das hier auch
------------------------------------------------ eX simply blue...
Re: CPU-Speed messen (nicht auslesen)
ich wechsle mal in den "professional-mode" zum schreiben von Posts.
Vielleicht ist da was dabei.
____________________ Windows ist wie Macintosh - Most Applications Crash; If Not, The Operating System Hangs.
Re: CPU-Speed messen (nicht auslesen)
So, der Professional-Mode ist aktiv, außerdem hab ich auf Wunsch von eX die moderierten Mitlgieder aktiviert, das bedeutet, das neue Mitglieder erst durch mich bestätigt werden müssen.
Test ob Leerzeichen nun endlich bleiben (ich hab die formatierungen selbst hinzugefügt):
function Test(a: integer): String; begin if a=1 then Result := 'a ist eins'; if a>1 and a<5 then begin Result := 'a zwischen 1 und 5'; end; end;
Das ganze nochmal mit der Funktion des Einzugs, der im neuen Post-Editor vorhanden ist (leider muss dazu ein größerer Zeilenabstand her):
function Test(a: integer): String;
begin
if a=1 then Result := 'a ist eins';
if a>1 and a<5 then
begin
Result := 'a zwischen 1 und 5';
end;
end;
____________________ Windows ist wie Macintosh - Most Applications Crash; If Not, The Operating System Hangs.
Re: CPU-Speed messen (nicht auslesen)
Wow.. beides funktioniert!!!
Dann nehmen wir lieber das erste.
Wenn ihr kleine Zeilenabstände wollt (keine Doppelten), müsst ihr SHIFT+ENTER drücken.
____________________ Windows ist wie Macintosh - Most Applications Crash; If Not, The Operating System Hangs.