Почему эти тесты НЕ нагружают процессор?

Почему эти тесты НЕ нагружают процессор?

Я провел два простых теста в Powershell и C. Я провел их на достаточно производительном i7-2600 с 16-гигабайтной ОС Win 7 Pro.

Оба запускались с использованием двух из 8 ядер (на самом деле 4 ядра с двойным гиперпотоком) и работали очень пиково, с использованием от 40% до 70% за время выполнения (от 30 до 60 секунд). Остальная часть системы была тихой, но в домене, и обе среды разработки были открыты, как и Firefox. Фоновая активность до и после запусков использовала от 1,5% до 2,5% от общей доступности ЦП.

Что происходит в Windows, что ограничивает эти вычислительно-зависимые процессы, не позволяя им закрепить процессор хотя бы на тех ядрах, на которых они работают?

Это было сделано для демонстрации «на лету» и я ожидал, что процессор загрузится на 100%.

Powershell

$a = 1  
"Starting Loop"
get-date
DO
{
 $a++
} While ($a -le 50000000)
get-date

С

#include <stdio.h>
#include <time.h>

int main (void) {

  long long a;
  time_t mytime;
  mytime = time(NULL);
  printf(ctime(&mytime));
  /* for loop execution */
  for( a = 1; a < 100000000000; a = a + 1 ){

  }
  mytime = time(NULL);
  printf(ctime(&mytime));

 return 0;
}    

Связанный контент