c# - 计算 Windows 进程的 CPU 使用率?

标签 c# .net windows process performancecounter

给定进程 ID,如何使用 C# 从该进程获取 CPU 负载?

我已尝试使用 c# calculate CPU usage for a specific application 中描述的 PerformanceCounter

我还尝试在一个时间范围内手动获取进程总 cpu 时间的两个值,并将 delta-cpu-time 除以 delta-total-time。

这两种方法一开始似乎都可以正常工作,但如果我将我的应用程序放在 Windows 任务管理器旁边,我的应用程序总是显示大约是任务管理器显示的两倍。我尝试使用从 10 毫秒到 10 秒的各种时间步长进行更新,并始终获得相同的结果。

嗯,当我写这篇文章时意识到这可能是某种双核问题......

最佳答案

如果您有两个内核,任务管理器会将 1 个 CPU 的 100% 使用率报告为 50%。这可能就是您的问题所在。

关于c# - 计算 Windows 进程的 CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1364801/

相关文章:

c# - 调用存储过程并检查返回值

windows - AWS 命令​​行界面无法找到凭证 - 特殊权限

c# - 如果不实例化两次,就不能在 ConfigureServices 中使用已注册的单子(monad)

c# - 创建 SqlCeLockTimeoutException 的实例

c# - ASP.NET MVC : 'Extend' Html. TextBox 有条件地具有 CSS 值?

c# - Windows Phone 7 中的 XDocument.Parse 有何不同?

c# - 位图区域已经锁定,多线程环境

asp.net - 无法识别的配置部分

C 获取代码在 Windows 7 上不会出现段错误

java - 运行系统中复制的另一个 Java 的 jar 文件