C语言大师请给我写一个c程序用来测试我机器CPU满负荷工作

那也就是单位时间内某种运算执行的次数
或者执行指定次数的运算看用了多少时间的问题吧?
执行前定义一个变量记录开始时间,然后执行,
执行完成再获取时间,
得到两个时间的差就OK了。
能否将这个帮我变成程序?谢谢

这个一般不能做到。

    一般的C语言编译器会限制程序的资源使用量(如CPU不超过40%),超过设定时,编译出来的程序会提示“未响应”而停止工作,不会造成电脑满负荷工作的情况。

    实现满负荷工作可以用一些拷机软件,比如Super PI,来测试处理器的性能。

    但对于时间的记录,可以运用<time.h>的函数来实现,用法如下:

time_t start,end;  
start =time(NULL);//or time(&start);  
//计时中
end =time(NULL);  
printf("time=%d\n",difftime(end,start));

    这里的输出单位为秒。如要精确到毫秒的计时,可以调用clock():

clock_t start,end;  
start = clock();  
//计时中 
end = clock();  
printf("time=%f\n",(double)end-start)/CLK_TCK);

这里end和start得到的是计算机时钟的tick数,换算成毫秒需要除以常数CLK_TCK,换算成秒除以常数CLK_TCKCLOCKS_PER_SEC。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-21
有现成的程序叫做Super PI
Super PI是利用CPU的浮点运算能力计算π(圆周率),目前普遍用做测试系统稳定性和测试CPU计算特定位数圆周率所需的时间。
第2个回答  推荐于2017-09-08

#include "time.h"

#include "stddef.h"

#include "stdio.h"

int main()

{

 

     time_t str,end;

     long unsigned int t;

     str=time(NULL);

     for(t=0;t<500000000;t++)//循环次数尽量大,不然时间差太小看不到,我设的5亿次才看到

      ;

     end=time(NULL);

   

     printf("执行5亿次空循环需要%lf秒的时间。\n",difftime(end,str));

}

结果:

 

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网