Wendelius Ответов: 0

Об использовании ЦП


Я пытаюсь понять, почему разные инструменты показывают разные результаты использования процессора.

Я создал простой цикл, который должен полностью потреблять все ресурсы процессора. Однако в зависимости от того, какой инструмент я использую для наблюдения за нагрузкой процессора, я вижу очень разные результаты.

Ситуация примерно такая:

  • Диспетчер задач показывает максимум 45% загрузки процессора, нагрузка практически постоянна.
  • Диагностический инструмент Visual Studio показывает нагрузку от 50% до 100% , а среднее значение составляет примерно 75%
  • Монитор производительности Windows показывает 100% - ную нагрузку все время, когда тест выполняется.

Обратите внимание, что эти наблюдения взяты из одного и того же тестового запуска в одно и то же время, просто с использованием разных инструментов. Что могло привести к таким разным результатам?

Мой компьютер содержит 4 ядра, поэтому все, что меньше 4 потоков, показывает меньшее использование, но с 4 или более потоками результат будет таким,как описано. Операционная система-Windows 10 Pro.

Что я уже пробовал:

Тест, который я использовал
public static void Oper() {
   int a = 1;
   while (1 == 1) {
      a += 1;
      a -= 1;
   }
}

static void Main(string[] args) {
   System.Threading.Thread t1 = new System.Threading.Thread(Oper);
   System.Threading.Thread t2 = new System.Threading.Thread(Oper);
   System.Threading.Thread t3 = new System.Threading.Thread(Oper);
   System.Threading.Thread t4 = new System.Threading.Thread(Oper);
   System.Threading.Thread t5 = new System.Threading.Thread(Oper);
   System.Threading.Thread t6 = new System.Threading.Thread(Oper);
   System.Threading.Thread t7 = new System.Threading.Thread(Oper);

   t1.Start();
   t2.Start();
   t3.Start();
   t4.Start();
   t5.Start();
   t6.Start();
   t7.Start();
   Oper();
}

Wendelius

Спасибо, это интересная тема для чтения, особенно ответ от @Stefan63

Хотя весь разговор имеет смысл, я все еще не понимаю, почему я вижу такие разные результаты в одно и то же время... Похоже, что инструменты наблюдают за ситуацией совсем по-другому. Больше всего меня озадачивает разница между монитором производительности и диспетчером задач

0x01AA

Имейте в виду, что вывод stefan63 был/есть "неправильным". Нужно некоторое время, чтобы восстановить дело. Может быть, я смогу вернуться с какой-нибудь полезной информацией...

0 Ответов