9

Is it possible within Java to identify the total CPU speed available as well as the total system memory? Network connection speed to the web would also be awesome.

4 Answers 4

3

This really depends on your OS, since Java will tell you little about the underlying machine. Unfortunately you have to use differing approaches depending on your OS.

If you're on Linux, take a look at the /proc/cpuinfo filesystem for CPU info. /proc generally has a wealth of information. Network (IO) will be reflected via the command ifconfig.

If you're on Windows, a useful tool is WMI, which provides access to all sorts of low-level hardware stats. You can run WMI scripts via CScript. Here's a page of examples of WMI scripts.

Sign up to request clarification or add additional context in comments.

Comments

2

Maybe SIGAR can provide some of the things you need.

Comments

2
Properties p = System.getProperties();   
    p.list(System.out); 
    System.out.print("Total CPU:");
    System.out.println(Runtime.getRuntime().availableProcessors());
    System.out.println("Max Memory:" + Runtime.getRuntime().maxMemory() + "\n" + "available Memory:" + Runtime.getRuntime().freeMemory());
    System.out.println("os.name=" + System.getProperty("os.name"));

try above

2 Comments

java testtest.java:3: cannot find symbol symbol : class Properties Properties p = System.getProperties();
@Tim you should import the Properties first i.e. import java.util.*
0

Memory stats are available from the Runtime object. And take a look a jconsole, a graphical client that presents information about a JMX-enabled Java Virtual Machine. It shows a lot of information including CPU usage, so you could write your own client that accesses the JMX information too.

1 Comment

Yeah it seems like Java is very protective over how applications can interact with hardware. The memory stats I saw from the Runtime object are just what the VM will take, not the actual total amount available

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.