【问题标题】:Calculate CPU usage for a Windows process?计算 Windows 进程的 CPU 使用率?
【发布时间】:2009-09-01 21:46:41
【问题描述】:

给定一个进程 ID,我如何使用 C# 从该进程获取 cpu 负载?

我已尝试使用 PerformanceCounter,如 c# calculate CPU usage for a specific application 中所述

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

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

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

【问题讨论】:

    标签: c# .net windows process performancecounter


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 2012-04-27
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      相关资源
      最近更新 更多