Windows:如何测量每个进程的网络流量?

Windows:如何测量每个进程的网络流量?

我正在开发 Windows 上的基准测试工具,用于测量进程的启动性能。我一直在使用Get-AdapterStatistics | ConvertTo-JSONpowershell cmdlet 记录总网络流量,它为我提供了很好的数据:

  1. 记录当前网络统计数据(所有适配器发送/接收的所有字节总数)
  2. 运行我的基准测试
  3. 记录当前网络统计数据(所有适配器发送/接收的所有字节总数),显示差异

这工作得很好,我发现进程启动时间和发送的字节数之间存在很强的相关性(0.8)。我不知道哪些进程发送了数据。我如何获取这些数据?

我考虑过什么?

  1. Windows 资源监视器- 它按进程对网络流量进行采样,但不会将其保存在任何地方
  2. Sysinternals Procmon- 级别太低,而且是 GUI,使用起来很麻烦
  3. Microsoft 网络监视器 3- 附带 nmcap.exe,可以工作,但问题是它实际上捕获的是效率极低的数据包
  4. Wireshark- 有统计数据,但不了解流程

理想情况下,我希望 API 上的命令行工具能够提供时间 A 和时间 B 之间每个进程的总网络字节数。

次优是与资源监视器类似的吞吐量采样,但我再次需要一个命令行工具或 API,因为我正在自动化这个操作。

参考:

相关内容