gpt4 book ai didi

c# - 如何在不等待 1 秒的情况下对进程的 cpu 使用情况进行采样

转载 作者:行者123 更新时间:2023-11-30 16:10:37 28 4
gpt4 key购买 nike

我正在尝试对所有正在运行的进程的 cpu 使用情况进行采样,但在我发现的所有解决方案中都需要休眠 1 秒,这是一个问题,因为我想尽快对其进行采样以更新远程服务。我还尝试使用 WMI 查询 Win32_PerfFormattedData_PerfProc_Process 使用“PercentProcessorTime”。但它返回错误的值(是每个处理器吗?)

最佳答案

那是不可能的,等待足够长的时间以获取下一个样本是必要的。处理器只会处于两种状态之一。它要么正在执行代码,尽可能快地运行。或者它被 HLT 指令完全停止,当操作系统的线程调度程序找不到任何工作要做时,就会发生这种情况。每秒 64 次,时钟中断将其从暂停状态唤醒,调度程序会查看是否有任何准备运行。

性能计数器告诉您自上次对计数器采样以来处理器全速运行的频率与处理器停止的频率。如果您等待的时间不够长,那么数字的准确性就会开始受到影响。如果您等待的时间少于 16 毫秒,则只能测量 0 或 100%。奈奎斯特-香农采样定理的软件版本。

样本之间等待 1 秒是样板文件,这就是您在 Perfmon.exe 和 Taskmgr.exe 中看到的

关于c# - 如何在不等待 1 秒的情况下对进程的 cpu 使用情况进行采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25489541/

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