Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi aktuelle CPU-Frequenz (https://www.delphipraxis.net/93571-aktuelle-cpu-frequenz.html)

ManuMF 7. Jun 2007 15:51


aktuelle CPU-Frequenz
 
Hallo,

ich würde gerne, da ich nun einen AMD mit Cool'n'Quiet habe, die aktuelle Taktfrequenz auslesen. Das soll natürlich per Timer geschehen. Als Vorbild dient mir der "AMD Power Monitor", der mit 100ms sogar recht schnell aktualisiert.

Ich habe schon gesucht und folgende 2 Möglichkeiten gefunden:
- dsdt.info: Frequenz berechnen
Gut: Die Berechnung liefert schöne Werte.
Haken: Wenn ich das ganze per Timer mache, ruckt das Programm bei der Berechnung, nimmt also keine Mausklicks an etc. :shock:
- DP-CodeLib: CPU-Frequenz per API ermitteln
Gut: Programm wird nicht aufgehalten
Haken: Die Frequenz geht von 1000 bis 2200 MHz. Die Funktion gibt aber nur die Werte 990, 1782 und 2200 MHz (je -1) zurück :( - Der Power Monitor zeigt gerundet auf Hunderter alles von 1000 bis 2200 an.

Gibt es eine Möglichkeit, die Berechnung so zu verändern, dass sie das Programm nicht aufhält bzw. eine Methode, die ohne Rucken gute Werte liefert?

Danke,
ManuMF

DGL-luke 7. Jun 2007 15:55

Re: aktuelle CPU-Frequenz
 
Na klar, im Timer ist das ganze natürlcih blocking - also musst dus z.B. per Thread non-blocking machen.

ManuMF 7. Jun 2007 15:59

Re: aktuelle CPU-Frequenz
 
Ich habe es auch mit einem JvTimer von den JEDIs probiert.
Dazu habe ich bei diesem die Eigenschaft Threaded auf true gesetzt und die Priorität so gesetzt, wie es sonst der Berechnungscode macht und selbiges dort entfernt (damit das nicht jedes Mal neu gemacht werden muss).
Das sollte eigentlich dann in einem Thread ablaufen, oder? :gruebel: Jedenfalls hat es nichts gebracht :(

edit:
Ein weiterer Haken der Berechnung: Wenn man den Code im falschen Moment stoppt, beginnt das ganze System zu schleichen.

Luckie 7. Jun 2007 16:25

Re: aktuelle CPU-Frequenz
 
Auch Thread wird nichts bringen, da der Code kurzzeitig, zur Messung der Taktfrequenz, mit der höchst möglichen Priorität läuft und somit alles andere blockiert.

himitsu 7. Jun 2007 16:26

Re: aktuelle CPU-Frequenz
 
Liste der Anhänge anzeigen (Anzahl: 1)
schnell und genau genug?

ohne Thread und in 100er-Schritten
und mit 'nem, Zähler + bewegtem TShape zur Ruckelkontrolle.


ach ja, die Zählfunktionen sind nach negaH's Vorbild.

ManuMF 7. Jun 2007 23:26

Re: aktuelle CPU-Frequenz
 
Ich bin beeindruckt :shock:

Leider auch so nur 3 Werte (1000, 1800 und 2200). Die 1800 treten aber auch auf, wenn der Monitor 1200, 1500 oder 2000 zeigt.
Vermutlich lässt sich das nur über einen Treiber genau auslesen, der Monitor greift wohl auch auf den von AMD zu.

himitsu 8. Jun 2007 12:18

Re: aktuelle CPU-Frequenz
 
Liste der Anhänge anzeigen (Anzahl: 1)
na ja, ein Treiber sollte eigentlich nicht nötig sein.
jedenfalls läuft bei den meisten CPUs der Real Time Stamp Counter (RDTSC) mit dem CPU-Tackt mit.
(nur bei Multiprozessorsystemen hätte man damit Probleme ... da müßte man die Messungen auf den gewünschten CPU-Kern beschränken)

Ein Problem wird aber auch sein, daß Cool'n'Quiet anscheined recht schnell reagiert ... also die Frequenz sich schnell ändern kann (auch wärend der Messung).

Was genau willst du denn haben?

Wenn dir der FrequenzDurchschnitt zwischen 2 Messungen reicht, dann könnte man die Schleife/Pause zwischen den Messungen weglassen und als Messpause die Zeit zwischen den Messungen ausnutzen ... würde dann also praktisch keine Zeit zur Messung nötig sein.

Könnte dann ja mal mein Progi dementsprechend umstellen, falls dir sowas reicht.
Jedenfalls dürften Momentaufnahmen doch eh "unbedeutend" sein, da du ja nicht ständig mitmißt.


[add]
"ohne Pause" ... als Messschleife/Messpause wird die Zeit zwischen 2 Messungen verwendet.

ManuMF 8. Jun 2007 21:22

Re: aktuelle CPU-Frequenz
 
Klaasse, danke! :thumb:

So ist die Anzeige sogar manchmal schneller als die vom Power Monitor, mit anderen Worten: Es läuft super.

hathor 11. Jun 2007 18:05

Re: aktuelle CPU-Frequenz
 
Zitat:

Zitat von himitsu
Ein Problem wird aber auch sein, daß Cool'n'Quiet anscheined recht schnell reagiert ... also die Frequenz sich schnell ändern kann (auch wärend der Messung).

Bis zu 25 mal pro Sekunde!

Das ist aber kein "Problem", sondern ein Feature!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 Uhr.

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