运行这个循环要多长时间,咱们是不是要告Intel了?
今天女朋友的arm运行速度问题引发了下面这个测试:
她的ARM是三星s3c2410 200MHZ,跑个程序O(n2)n不会超过500,然后就死了,后来知道一直在循环啊!
我就想200MHZ=200*1024*1024HZ 也就是说每秒钟执行200*1024*1024条指令啊!
然后我决定在自己机器上测试一下
代码如下:
#include <afxwin.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
clock_t start,end;
start = clock();
for(int i=0;i<200*1024*1024;i++)
;
end = clock();
printf("Total time %d ms\n",end-start);
return 0;
}
执行时间是惊人的562ms
我的处理器可是2G啊 理论上执行1024*1024*1024才半秒,可是我循环一下测试是夸张的2687ms
兄弟们,大家测一下,然后找Intel索赔去!