【问题标题】:Using Java to retrieve the CPU Usage for Window's Processes使用 Java 检索 Window 进程的 CPU 使用率
【发布时间】:2009-11-19 23:16:53
【问题描述】:

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

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

任何帮助将不胜感激。另外,如果可能的话,我想远离 C 库;但是,如果没有其他替代方案,则采用这种方式的解决方案将是合适的。

非常感谢,

史蒂夫

【问题讨论】:

    标签: java windows process cpu system-monitoring


    【解决方案1】:

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

    SIGAR - System Information Gatherer And Reporter

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:
          【解决方案5】:

          Windows 中任何正在运行的进程

          因此,不受 Java 以任何方式控制?

          我想远离 JNI

          算了。 Java 不是特定于平台的。如果你想访问特定平台的信息,你不能绕过 JNI。

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

              猜你喜欢
              • 2010-11-16
              • 1970-01-01
              • 2012-10-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-26
              • 1970-01-01
              相关资源
              最近更新 更多