3

我正在寻找一种 Java 解决方案来查找 Windows 中正在运行的进程的 CPU 使用率。浏览网络后,似乎很少有关于 Java 解决方案的信息。请记住,我不是要查找 JVM 的 CPU 使用情况,而是要查找当时在 Windows 中运行的任何进程。

我可以通过使用 exec("tasklist.exe ... ") 检索和解析进程信息来检索 Java 中的内存使用情况。尽管每个进程都有一个聚合 CPU 周期计时器,但我没有看到 CPU 使用率列。

任何帮助将不胜感激。另外,如果可能的话,我想远离 C 库;但是,如果没有其他选择,那么通过这种方式的解决方案将是合适的。

非常感谢,

史蒂夫

4

6 回答 6

1

如果 GPL 许可的 API 适合您,请尝试

SIGAR - 系统信息收集器和报告器

它允许访问您想要的信息(以及更多信息),并且在许多相关平台上都受支持

于 2009-11-19T23:34:38.513 回答
1

看看雅各布。它会让你调用 COM 对象,并且在 Windows 上有大量的 COM 对象来获取此类信息。

于 2009-11-19T23:28:10.967 回答
0

Windows 中任何正在运行的进程

因此,不受 Java 控制?

我想远离 JNI

忘了它。Java 不是特定于平台的。如果您想访问特定于平台的信息,则无法绕过 JNI。

于 2009-11-19T23:25:17.147 回答
0

您正在编写/使用单独的程序将该数据转储到某个地方,然后可以通过网络、文件或数据库从 Java 中获取它。在 Linux 中,您始终可以阅读/proc,但在 Win 上则无法阅读,需要单独的 proggy(没有 JNI)。

于 2009-11-19T23:30:16.103 回答
0

试用javasysmon,获得 BSD 许可(准确地说:FreeBSD 2 条款许可)。

我用它来获取 CPU 核心和 CPU 使用率。我认为这比使用 tasklist.exe 要好得多。

于 2010-04-04T03:58:58.943 回答