我正在寻找一种方法来获取 Windows 上的当前“负载”(如在 Unix 中:等待 CPU/数据的进程数)。这有可能吗?
背景:默认情况下,Windows 会告诉你 CPU 的使用量或网络流量、RAM 使用量等。从性能的角度来看,这是没有用的。当病毒扫描程序阻止我的 IDE 时,我不在乎 97% 的 CPU 处于空闲状态。我想知道进程是否被阻塞等待某些资源。
我正在寻找一种方法来获取 Windows 上的当前“负载”(如在 Unix 中:等待 CPU/数据的进程数)。这有可能吗?
背景:默认情况下,Windows 会告诉你 CPU 的使用量或网络流量、RAM 使用量等。从性能的角度来看,这是没有用的。当病毒扫描程序阻止我的 IDE 时,我不在乎 97% 的 CPU 处于空闲状态。我想知道进程是否被阻塞等待某些资源。
System\Processor Queue Length
计数器会告诉你有多少线程正在等待 CPU 资源。 LogicalDisk\Current Disk Queue Length
将告诉您有多少请求正在等待磁盘 I/O。
编辑:您可以使用 Vista 中的“可靠性和性能监视器”或 XP 中的“perfmon.exe”绘制这些值。Unix 为您提供不同时间间隔的时间平均值;perfmon 有一个平均计数器(所有计数器的可配置采样间隔),或者您可以获取当前队列的快照。我认为没有办法像 Unix 给你的那样获得 EMA(指数移动平均线)。