当前位置:和仁网 >聚合 > 正文

利用wmic获取cpu使用率,该怎么解决

2021-08-06 0

看到一个程序通过wmic process get Caption,KernelModeTime,UserModeTime命令来
获取所有进程的KernelModeTime和UserModeTime。

算出所有进程的 (KernelModeTime总和 + UserModeTime总和),作为allPorcessTime1;
算出System Idle Process进程和System进程的 (KernelModeTime总和 + UserModeTime总和),作为systemProcessTime1;

隔几秒后,再次调用wmic命令,再次获取allPorcessTime2和systemProcessTime2;利用wmic获取cpu使用率
看到一个程序通过wmic process get Caption,KernelModeTime,UserModeTime命令来
获取所有进程的KernelModeTime和UserModeTime。

算出所有进程的 (KernelModeTime总和 + UserModeTime总和),作为allPorcessTime1;
算出System Idle Process进程和System进程的 (KernelModeTime总和 + UserModeTime总和),作为systemProcessTime1;

隔几秒后,再次调用wmic命令,再次获取allPorcessTime2和systemProcessTime2;

然后,
busyTime = allPorcessTime2 - allPorcessTime1;
idleTime = systemProcessTime2 - systemProcessTime1;

cpu使用率 = 100 * (busyTime) / (busyTime + idleTime);

请问这个方法计算cpu使用率对吗?

我和任务管理器对比,貌似相差很大。

[解决办法]
因为运行wmic命令的那个时刻会对CPU使用率带来较大变化利用wmic获取cpu使用率
看到一个程序通过wmic process get Caption,KernelModeTime,UserModeTime命令来
获取所有进程的KernelModeTime和UserModeTime。

算出所有进程的 (KernelModeTime总和 + UserModeTime总和),作为allPorcessTime1;
算出System Idle Process进程和System进程的 (KernelModeTime总和 + UserModeTime总和),作为systemProcessTime1;

隔几秒后,再次调用wmic命令,再次获取allPorcessTime2和systemProcessTime2;

然后,
busyTime = allPorcessTime2 - allPorcessTime1;
idleTime = systemProcessTime2 - systemProcessTime1;

cpu使用率 = 100 * (busyTime) / (busyTime + idleTime);
本周热门
本月热门