我用 C++ 编写了这个小程序来检查 CPU 负载情况。
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int main()
{
double x = 1;
int t1 = GetTickCount();
srand(10000);
for (unsigned long i = 0; i < 10000000; i++)
{
int r = rand();
double l = sqrt((double)r);
x *= log(l/3) * pow(x, r);
}
int t2 = GetTickCount();
printf("Time: %d\r\n", t2-t1);
getchar();
}
我在 win7 x64 上为 x86 和 x64 编译了它。
出于某种原因,当我运行 x64 版本时,它在大约 3 秒内完成运行,
但是当我尝试使用 x86 版本时,它花了 48 (!!!) 秒。
我尝试了很多次,总是得到类似的结果。
什么可能导致这种差异?