java - 来自 java 的 Windows 性能计数器

标签 java windows performancecounter

我正在寻找一种从 Java 程序中的 Windows 性能监视器获取性能计数器的方法。我知道在 .NET 或 PowerShell 中获取此计数器非常容易。谁知道在 Java 中这可能吗?

最佳答案

参见Access Windows Performance Monitor counters from Java :

“对于那些运行 Java 应用程序或服务的人来说,Windows 性能监视器 (WPM) 包含了宝贵的信息宝库 - 请参阅图 1。有数百(或数千)个称为计数器的性能统计信息可实时提供,用于测量关键的系统性能因素。本文概述了从 Java 访问这些性能统计信息的简单方法。”

提供了三个选项:

  1. 配置 WPM 以记录特定性能计数器:WPM 可以采用一组可配置的计数器,并按配置的频率将它们记录到文件中。 Windows XP 和 Windows 2003 还允许将 WPM 数据直接记录到 ODBC(开放数据库连接)数据源。一旦这些数据被记录到其最终目的地,使用 java.io 或 java.nio 包读取日志文件就应该很简单了。
  2. WPM 的 native (Java native 接口(interface))接口(interface)
  3. NSClient4j 是一个纯 Java 客户端,提供了用于访问 WPM 性能计数器数据的简单 API。它使用名为 NSClient 的 Windows 服务。

推荐的方法似乎是选项 3 ...

关于java - 来自 java 的 Windows 性能计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25035543/

相关文章:

java - 对象不是抽象的,不会覆盖抽象方法

windows - 下载很多小文件

python - Zope 3 + windows + MySQL - 如何在 windows 上安装 ZMySQLDA?

c# - 是否有统一的方法来计算 PerformanceCounter 任何类别内的任何计数器?

c++ - 计时 STL 容器 - 广泛的变化?

java - 确保类是不可变的

java - 什么是NullPointerException,我该如何解决?

java - spring 生成的电子表格扩展名错误

python - 日志记录模块不写入文件

windows - 我如何确定我的进程是 CPU 绑定(bind)、I/O 绑定(bind)、内存绑定(bind)还是