Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CPU Speed ermitteln (https://www.delphipraxis.net/61192-cpu-speed-ermitteln.html)

Ati 18. Jan 2006 04:50


CPU Speed ermitteln
 
Hallo zusammen,

auf Dsdt.info gibt es ja eine Function mit der man die Taktfrequenz errechen kann. Nur läuft diese nicht richtig. Es wird mir 600 MhZ (mal auch mehr und mal weniger) angezeigt dabei habe ich 1600. Gibt es da eine zuverlässigere Methode oder gar eine freie Komponente mit der man noch mehr Computer/Systemdetails herausfinden kann?

Ati

Luckie 18. Jan 2006 05:03

Re: CPU Speed ermitteln
 
Dikussionen zu diesem Thema solltest du genug im Forium mittels der Suchfunktion finden. Bemüh bitte einfach mal die Suche.

Ati 18. Jan 2006 07:06

Re: CPU Speed ermitteln
 
Bei allem nötigen Respekt aber ich finde es schon befremdlich das Du mir einfach so unterstellst ich hätte nicht die Suche bemüht. Ich will bestimmt nicht ausschliessen das mir irgendwas durchgegangen ist aber eine Suche nach cpu=644 Treffer, cpu+speed=14Treffer,cpu+taktfrequenz=13Treffer, cpu+mhz=32 Treffer. Ich habe verschieden Sachen ausprobiert nur haben entweder empfohlene Komponenten gar nicht funktioniert oder nicht das Ergebnis gebracht. Dein Syinfo 3.2 hat mir z.B. auch nur 597 Mhz angezeigt. CPUIDex von scp war mit 1450 MhZ noch am besten. Es mag ja sein das ich die von mir benötigten/gewünschten Informationen falsch versuche zu ermitteln aber eines lasse ich mir hier nicht vorwerfen.... DAS ICH NICHT DIE SUCHE BENUTZE.

Ati

Ati 18. Jan 2006 07:26

Re: CPU Speed ermitteln
 
Habe jetzt was bei den Schweizern ;-) was gefunden was zumindest bisher bei mir akzeptable Ergebnisse liefert:
Delphi-Quellcode:
uses
  Registry;

function GetCpuSpeed: string;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('Hardware\Description\System\CentralProcessor\0', False) then
    begin
      Result := IntToStr(Reg.ReadInteger('~MHz')) + ' MHz';
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;

Basilikum 18. Jan 2006 07:37

Re: CPU Speed ermitteln
 
liefert das hier http://www.delphipraxis.net/internal...=487391#487391 auf deinem Rechner korrekte Resultate ?

Ati 18. Jan 2006 07:56

Re: CPU Speed ermitteln
 
Hatte ich gefunden nur ist es ein wenig aufwendiger bei D3 mit Int64 zu arbeiten. Deswegen hatt ich mich nicht weiter damit beschäftigt.

Daniel G 18. Jan 2006 12:09

Re: CPU Speed ermitteln
 
Ansonsten hilft eine Suche nach Hier im Forum suchenRDTSC. (Nein, ich wusste früher auch nicht, dass es sowas gibt.)

Die Suche liefer dir dann folgendes Ergebnis:

Zeitmessung mit dem RealTimeCounter

Da findest du auch die Funktion RDTSC, die du für Basilikums Beitrag benötigst.

himitsu 18. Jan 2006 12:45

Re: CPU Speed ermitteln
 
Ich würde/hab auch die Version mit'm RDTSC verwendet, denn die Werte in der Registry müssen nicht immer stimmen.

Und was das Int64-Problem angeht ... verwende einfach statt dem Int64 den Typ Comp.
> Int64 und Delphi 3

Ati 18. Jan 2006 13:19

Re: CPU Speed ermitteln
 
Hab mal ganz einfach C&P verwendet.
Delphi-Quellcode:
function CalcCPUFrequency(Rounds: Cardinal =1): comp;
Wird wie folgt angemeckert:; oder) erwartet aber = gefunden

Ati

s.h.a.r.k 18. Jan 2006 13:27

Re: CPU Speed ermitteln
 
Hey.

Mal eine etwas andere Frage an dich: Was hast du eigentlich für eine CPU?!? Ich meine vor kurzem mal gelesen zu haben, dass bei AMD64 (oder waren es die DualCode-Prozessoren) der TSC nicht richtig funktioniert. AMD hat glaube ich das Problem bisher nicht gelöst, wenn mich nicht alles täuscht!

mfg shark

Basilikum 18. Jan 2006 13:34

Re: CPU Speed ermitteln
 
Zitat:

Zitat von Ati
Hab mal ganz einfach C&P verwendet.
Delphi-Quellcode:
function CalcCPUFrequency(Rounds: Cardinal =1): comp;
Wird wie folgt angemeckert:; oder) erwartet aber = gefunden

Ati

Delphi 3 kennt wohl die Default-Parameter-Values noch nicht... entferne einfach das "=1"...

Ati 18. Jan 2006 13:55

Re: CPU Speed ermitteln
 
Hatte ich schon probiert!
Delphi-Quellcode:
 if IsRDTSCPresent and QueryPerformanceFrequency(F) and QueryPerformanceCounter(S) then
Ist jetzt das Problem."Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen".

himitsu 20. Jan 2006 12:15

Re: CPU Speed ermitteln
 
Zitat:

Zitat von s.h.a.r.k
Mal eine etwas andere Frage an dich: Was hast du eigentlich für eine CPU?!? Ich meine vor kurzem mal gelesen zu haben, dass bei AMD64 (oder waren es die DualCode-Prozessoren) der TSC nicht richtig funktioniert. AMD hat glaube ich das Problem bisher nicht gelöst, wenn mich nicht alles täuscht!

Also bei meinem AMD64 hab ich nocht keine derartigen Probleme entdecken können?

Zitat:

Zitat von Basilikum
Delphi 3 kennt wohl die Default-Parameter-Values noch nicht... entferne einfach das "=1"...

Jupp, erst ab D4 (wenn ih mich jetzt nicht irre)

Zitat:

Zitat von Ati
Hatte ich schon probiert!
Delphi-Quellcode:
 if IsRDTSCPresent and QueryPerformanceFrequency(F) and QueryPerformanceCounter(S) then
Ist jetzt das Problem."Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen".

Wie sind den QueryPerformanceFrequency und QueryPerformanceCounter bei dir definiert?

Ati 20. Jan 2006 12:30

Re: CPU Speed ermitteln
 
Ich habe mich jetzt schon auf die Möglichkeit weiter oben versteift. Zusätzlich lese ich noch den Prozessorname aus, da ja hier auch meistens die Leistung mit angegeben ist. War zumindest in allen bisherigen Testläufen auf den verschiedensten Computern so.
Hoffe Du siehst es mir nach das ich mich jetzt nicht mehr damit beschäftige.

Ati

himitsu 20. Jan 2006 12:35

Re: CPU Speed ermitteln
 
Macht nüschts.

Aber wunder dich nicht, wenn der Wert im Namen nicht stimmt, denn da steht ja nur (wenn überhaupt) der Wert drin, für den der eingesetzte Prozessoer vorgesehen ist ... ob er jetzt über-/untertaktet ist, oder ob der Wert genau stimmt, ist was anderes...

Ati 20. Jan 2006 12:51

Re: CPU Speed ermitteln
 
Danke Dir. Werde es mir mal merken falls ich doch nochmal Bedarf habe.

Ati

Razor 1. Jun 2008 11:42

Re: CPU Speed ermitteln
 
What about if you have speedstep enabled in bios and it changes its speed.How to detect then?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz