我有一个情况,我需要得到每个核心的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利用率的直觉。
请帮助我解决这个问题,如何利用处理器的每个核心。
谢谢
发布于 2013-11-28 09:48:29
你可以用SIGAR。他们的网站说:
一个API来访问系统信息,而不管底层平台如何。
我相信这就是你想要的。看看他们的网站:http://www.hyperic.com/products/sigar
JavaSysMon是另一个需要查看的库:https://github.com/jezhumble/javasysmon/wiki
发布于 2013-11-28 09:36:38
您必须编写多线程应用程序。在四核上编写单线程应用程序比在单个核心上编写应用程序要快(理论上)。为了利用CPU内核,您必须为每个核心显式地编写一个进程。
multithreading.htm
https://stackoverflow.com/questions/20262150
复制相似问题