java - 如何使用 Java 代码获取处理器每个核心的当前利用率百分比

标签 java

我遇到一种情况,我需要获取每个 CPU 核心的利用率。例如。如果我有一个 4 核处理器,那么预期输出是:

               Core-1          Core-2      Core-3        Core-4
Utilization    31.04           12.89       2.45          10.56 

我尝试使用以下代码:

OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();
System.out.println(operatingSystemMXBean.getSystemLoadAverage());

上面的代码段有两个问题。首先,在 Win7 32 位上,输出为 -1.0,其次,从方法名称 getSystemLoadAverage() 可以看出,它只显示总体 CPU 利用率。

请帮我解决这个问题,如何获取处理器每个核心的利用率。

谢谢

最佳答案

您可以使用 SIGAR。他们的网站说:

通过一个 API 即可访问系统信息,无论底层平台如何

我相信这就是你想要的。看看他们的网站:http://www.hyperic.com/products/sigar

JavaSysMon 是另一个值得关注的库:https://github.com/jezhumble/javasysmon/wiki

关于java - 如何使用 Java 代码获取处理器每个核心的当前利用率百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262150/

相关文章:

java - String.ReplaceAll 中的正则表达式

c# - 在c#中有没有类似java的Character.digit(char ch, int radix)的东西?

java - 将用户输入(从 TextField)传递到另一个类?

java - StackOverFlow错误递归

在 XML 中配置的 Spring Integration Kafka 端点的 Java DSL 等价物

java - 从嵌套列表 Spring JpaRepository 中检索对象

java - 使用 Neo4j 批量插入

java - 启动 Activity 时,应用程序可能在其主线程上做了太多工作

java - 使用主键以外的东西 hibernate 一对多

javascript - IntelliJ Spring启动,热部署不运行