PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cpu-Frequenz per Java lesen?


Capt'N Coax
2004-07-13, 16:35:13
Oi...

Tja, gibt's da irgendeine Möglichkeit in Java, die mir die CPUFrequenz ermittelt? Oder muss ich dafür jetzt echt über JNI gehen?

THX,
Coax

HellHorse
2004-07-13, 16:43:14
Welches System? Windows?
Unter Linux kannst du es aus
/proc/cpuinfo
auslesen.

Capt'N Coax
2004-07-13, 23:00:03
Eigentlich Windows.
Prinzipiell sagt deine Antwort aber schon alles.
Ich geh mal davon aus, dass deine Lösung über eine InfoDatei läuft (Keinen großen Plan von Linux).

Ich meinte eigentlich eher eine in Java implementierte Lösung.
Schad' :)

Sephiroth
2004-07-18, 00:51:40
Bei WinNT Systemen kannst den Speed aus der der Registry auslesen.

Pfad: HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
Name des Eintrags: ~MHz
Typ: DWORD

Sprich der Speed steht als Hex-Zahl drinne.

HellHorse
2004-07-18, 02:15:56
Falls du immer noch so wenig wie möglich selbst programieren willst, kannst du damit von Java aus auf die Registry zugreiffen:
http://www.trustice.com/java/jnireg/

public class RegTest {
public static void main(String[] args) {
try {
RegistryKey localMachine = Registry.HKEY_LOCAL_MACHINE;
RegistryKey hardware = Registry.openSubkey(localMachine, "HARDWARE" , RegistryKey.ACCESS_READ);
RegistryKey description = Registry.openSubkey(hardware, "DESCRIPTION" , RegistryKey.ACCESS_READ);
RegistryKey system = Registry.openSubkey(description, "System" , RegistryKey.ACCESS_READ);
RegistryKey cpu = Registry.openSubkey(system, "CentralProcessor" , RegistryKey.ACCESS_READ);
RegistryKey cpu0 = Registry.openSubkey(cpu, "0" , RegistryKey.ACCESS_READ);
RegDWordValue value = (RegDWordValue) cpu0.getValue("~MHz");
System.out.println("MHz: "+value.getData());
} catch (RegistryException e) {
e.printStackTrace();
}
}
}

Getestet, funktioniert und Windooze bootet sogar noch ;)