pyl*_*ner 3 c clock time-t time.h
我使用一个非常简单的代码来衡量执行时间.它运行良好,直到我不确定可能不会超过20分钟.但是(> 20分钟后)它返回负面结果.我在整个论坛搜索尝试了一切,比如更改数据类型,使用long unsigned(返回0)但再次失败.以下是我的代码片段
main()
{
time_t start,stop;
double time_arm;
start = clock();
/* ....... */
stop = clock();
time_arm=(double)(stop-start)/(double)CLOCKS_PER_SEC;
printf("Time Taken by ARM only is %lf \n",time_arm);
}
Run Code Online (Sandbox Code Playgroud)
输出是ARM的时间仅为-2055.367296
任何帮助表示赞赏,提前谢谢.
POSIX要求CLOCKS_PER_SEC为1,000,000.这意味着你的计数是以微秒为单位 - 而2 31微秒约为35分钟.您的计时器刚刚溢出,因此当发生这种情况时您无法获得有意义的结果.
为什么你在20分钟看到问题,我不确定 - 也许你CLOCKS_PER_SEC的POSIX不兼容.无论如何,你的问题是计时器溢出.你需要以不同的方式处理这个问题 - 或许要研究一下getrusage(2).