gpt4 book ai didi

c# - 如何在 Windows 中获取每个进程的磁盘事件

转载 作者:行者123 更新时间:2023-11-30 17:00:34 25 4
gpt4 key购买 nike

我需要提取给定进程的磁盘统计信息,我可以使用 WMI 和 PerformanceCounters 获取列出的进程并获取总体信息,例如列出的 CPU 和内存。但是信息都是捆绑在一起的,有什么方法可以按进程提取这些数据。有点像 Windows 资源监视器?

提前致谢

最佳答案

如果您需要实时数据,您应该实现 ETW 监听器。

ETW 是在 Windows 中跟踪性能信息的方式。它支持回到 Windows 2000。

Windows 中的每个组件都报告 ETW 事件(如果有监听器正在等待数据)。

例如,磁盘信息、内存(消耗、页面错误等)、争用、CPU 使用(每个内核、每个线程、每个应用程序,甚至是对磁盘或网络的单个 IO 请求。驱动程序使用它,.NET CLR 使用它(获取 JIT 或 GC 统计信息),并且示例无穷无尽。

我建议您从下载 XPerf\Xperf View 或 Windows Performance Recorder + Analyzer、PerfView 开始,尝试查看您到底在寻找什么信息,然后开始创建您的托管 ETW 监听器。

你可以从这个blog post开始,或搜索 Vans Morison(负责 MS 中的托管 ETW 提供者和消费者)的 ETW 帖子。

希望对您有所帮助,Ofir.

关于c# - 如何在 Windows 中获取每个进程的磁盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com