為什麼這些基準測試沒有讓 CPU 飽和。

為什麼這些基準測試沒有讓 CPU 飽和。

我在 Powershell 和 C 中執行了兩個簡單的基準測試。

兩者都使用 8 個核心中的兩個(實際上是 4 個核心雙超執行緒)運行,並且在運行時間(30 到 60 秒)內利用率非常高,利用率超過 40% 到 70%。系統的其餘部分很安靜,但在網域上,兩個開發環境都是開放的,Firefox 也是如此。運行之前和之後的後台活動使用了總 CPU 可用性的 1.5% 到 2.5%。

Windows 中發生的情況限制了這些運算密集型進程至少將 CPU 固定在它們運行的核心上。

這是我做的一個動態演示,預計 cpu 會固定在 100%。

電源外殼

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

C

#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;
}    

相關內容