Java api获取我的java应用程序的CPU和内存使用情况

cha*_*ang 10 java heap-memory cpu-usage

需要api来获取我当前进程或应用程序在CPU中的CPU和内存使用情况.我得到了一个API来获取完整的系统的CPU使用率,但我需要特殊处理.(getSystemCpuLoadOperatingSystemMXBean接口)

提前致谢

Rub*_*Ric 6

如果使用其他数据,则可以获取该数据OperatingSystemMXBean.检查导入的包:com.sun.management.OperatingSystemMXBean.

 import java.lang.management.ManagementFactory;
 import com.sun.management.OperatingSystemMXBean;

 public class Test {

 public static void main(String[] args) {
       OperatingSystemMXBean operatingSystemMXBean = 
          (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
       System.out.println(operatingSystemMXBean.getProcessCpuLoad());
 }}
Run Code Online (Sandbox Code Playgroud)

https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html

如果我没弄错的话,这个类包含在rt.jar中,存在于你的java运行时中.


P S*_*S M 4

有好消息也有坏消息。坏消息是,使用纯 Java 不可能以编程方式查询 CPU 使用情况。根本就没有 API 可以实现这一点。建议的替代方案可能使用 Runtime.exec() 来确定 JVM 的进程 ID (PID),调用外部的特定于平台的命令(如 ps),并解析其输出以获取感兴趣的 PID。但是,这种方法充其量也是脆弱的。

不过,好消息是,可以通过跳出 Java 并编写几行通过 Java 本机接口 (JNI) 与 Java 应用程序集成的 C 代码行来实现可靠的解决方案。