1

我希望能够通过我的实时/运行应用程序上的代码来测量线程 I/O。到目前为止,我找到的最好的(也是唯一的)解决方案是这个,它需要我直接连接到 Windows 的性能监视器。然而,它似乎非常复杂,必须有一种更简单的方法来做到这一点。我不介意为 Windows 和 Linux 编写不同的代码,老实说我期待它。

谢谢你的帮助

更新:

所以我所说的磁盘 I/O 的意思是:如果您打开 Windows 资源监控并转到磁盘选项卡,您可以查看每个正在运行的进程并锁定最后一分钟 B/Sec 的平均读/写。我想获得相同的数据,但每个线程

4

1 回答 1

2

看看 Hyperic Sigar。它是一个跨平台的原生资源 Java API。

FileSystemUsage类为您提供了一堆关于文件系统使用情况的统计信息(很明显......),例如

  • 磁盘队列
  • 磁盘写入/写入的磁盘字节
  • 磁盘读取/磁盘读取写入

它们中的大多数是累积的,但您只需每n秒计算一次增量即可获得速率。

还有一个用于分析/监视文件 IO 的 javaagent,称为JPicus。我有一段时间没有看它,但它可能有用。

于 2013-06-27T21:14:04.320 回答