我正在寻找一种从 Java 程序中的 Windows 性能监视器获取性能计数器的方法。我知道在 .NET 或 PowerShell 中获取此计数器非常容易。谁知道在 Java 中这可能吗?
最佳答案
参见Access Windows Performance Monitor counters from Java :
“对于那些运行 Java 应用程序或服务的人来说,Windows 性能监视器 (WPM) 包含了宝贵的信息宝库 - 请参阅图 1。有数百(或数千)个称为计数器的性能统计信息可实时提供,用于测量关键的系统性能因素。本文概述了从 Java 访问这些性能统计信息的简单方法。”
提供了三个选项:
- 配置 WPM 以记录特定性能计数器:WPM 可以采用一组可配置的计数器,并按配置的频率将它们记录到文件中。 Windows XP 和 Windows 2003 还允许将 WPM 数据直接记录到 ODBC(开放数据库连接)数据源。一旦这些数据被记录到其最终目的地,使用 java.io 或 java.nio 包读取日志文件就应该很简单了。
- WPM 的 native (Java native 接口(interface))接口(interface)
- NSClient4j 是一个纯 Java 客户端,提供了用于访问 WPM 性能计数器数据的简单 API。它使用名为 NSClient 的 Windows 服务。
推荐的方法似乎是选项 3 ...
关于java - 来自 java 的 Windows 性能计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25035543/