0

我一直在网上搜索 java 中的可能性,以确定我的应用程序需要多少 cpu,但遗憾的是找不到解决方案。大多数人都提到了“OperatingSystemMXBean”,它可以在 linux 等平台上运行,但不能在 Windows 上运行。我的应用程序将在多个操作系统上运行,但主要在 Windows 上运行。那么有什么方法可以计算出同一运行时中 java 应用程序的 cpu 使用情况,该运行时是平台独立的还是支持包括 windows、mac 和 linux 在内的多个平台?

谢谢巴施迪
_

4

2 回答 2

1

我不同意你的说法。OperatingSystemMXBean在 Windows 上可用。只是有点隐蔽。小心包导入。它不是 Eclipse 提供的默认值。

 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());
}}

如果您运行此摘录,您可能会获得 0.0.0。这不是故障。这只是一个非常轻量级的程序,cpu 负载可能需要一段时间才能计算出来。您可以在第一次调用时获得 -1。在您的应用程序中尝试,在不同的瞬间恢复价值。

如果我没记错的话,这个类包含在 rt.jar 中。您可能会发现使用 Eclipse IDE 导入包时会出现一些问题。在这里您可以找到解释以及如何解决它。 为什么限制对 OperatingSystemMxBean 的 jre6/lib/rt.jar 的访问?

于 2016-03-22T14:00:29.070 回答
-1

这在 Windows 10 上效果很好。测量 Skype 的 cpu util:

c:\Windows\system32\typeperf "\Process(Skype)\% processor time"
于 2016-03-22T13:46:29.620 回答