gpt4 book ai didi

c# - CPU 使用率和 CPU 速度

转载 作者:太空宇宙 更新时间:2023-11-04 08:14:30 25 4
gpt4 key购买 nike

我在计算 CPU 利用率时遇到了不同的行为。在我的代码中,我使用性能计数器“Processor Time”、实例“_Total”和它似乎工作正常(Windows 性能监视器显示相同的值,Sysinternals Process Explorer 也是如此), 但Windows 8 或 10 中的内置任务管理器显示更少,如果电源选项允许平衡 CPU 速度和 CPU 是在给定的时刻以较低的频率运行。

有没有C#的C函数,perf. counter .. 提供这个(任务管理器)值,或者读取当前 CPU 频率并以某种方式计算它?

最佳答案

如果有人会遇到这个需求,我想告诉你我是如何最终解决它的:

显然,Windows 8 包含一个名为“% Processor Utility”的性能监视器计数器。这是一个,在 Win 8 和 Win 10 的任务管理器中显示为 CPU 利用率。该计数器与通常用于显示 CPU 使用率的“% Processor Time”不同,它考虑了平衡的 CPU 速度。

% Processor Utility 是处理器正在完成的工作量,占处理器在运行时可以完成的工作量的百分比它的标称性能从不闲置。在某些处理器上,Processor Utility 可能超过 100%。

C#代码片段:

PerformanceCounter _cpuCounter = new PerformanceCounter("Processor Information", "% Processor Utility", "_Total");
CounterSample firstValue = _cpuCounter.NextSample();
Thread.Sleep(500);
CounterSample secondValue = _cpuCounter.NextSample();
string cpuUsage = CounterSample.Calculate(firstValue, secondValue).ToString("0.0");

关于c# - CPU 使用率和 CPU 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548573/

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