2013-05-07 2 views
1

Я отслеживать загрузку процессора для процесса в рамках регулярного сердцебиения для приложения, используя код что-то похожее на это:счетчик производительности больше, чем 100%

var process = Process.GetCurrentProcess(); 
    _processCpuCounter = new PerformanceCounter("Process", "% Processor Time", process.ProcessName); 
    ... 
    ... 
    ... 
    var processCPU = Convert.ToInt32(_processCpuCounter.NextValue()); 

NextValue вычисляется только один раз в минуту.

Я заметил, что значение processCPU будет больше 100%, может ли кто-нибудь объяснить, почему это будет происходить, поскольку математически это не имеет смысла?

ответ

3

Каждое ядро ​​процессора имеет 100%, поэтому 120% на двухъядерном ядре может означать, что он равен 100%, а другой - 20%.

+0

В этом ответе также упоминается 100% за процессор - http://stackoverflow.com/questions/11504438/correct-way-to-use-performancecounter-in-net-to-measure-cpu-usage – AwkwardCoder