为什么这些基准测试不会使 CPU 饱和。

为什么这些基准测试不会使 CPU 饱和。

我在 Powershell 和 C 中运行了两个简单的基准测试。我在配备 16 Gig Win 7 Pro 的配置相当不错的 i7-2600 上运行了这两个测试。

两者都使用了 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;
}    

相关内容