gpt4 book ai didi

clock() 在 C 中返回一个负值

转载 作者:太空狗 更新时间:2023-10-29 15:58:27 24 4
gpt4 key购买 nike

我正在使用一个非常简单的代码来测量执行时间。它运行良好,直到我不确定可能不会超过 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);
}

输出是仅 ARM 占用的时间为 -2055.367296

感谢任何帮助,提前致谢。

最佳答案

POSIX 要求 CLOCKS_PER_SEC 为 1,000,000。这意味着您的计数以微秒为单位 - 231 微秒大约是 35 分钟。您的计时器即将溢出,因此当这种情况发生时您无法获得有意义的结果。

为什么您会在 20 分钟后看到问题,我不确定 - 也许您的 CLOCKS_PER_SEC 不兼容 POSIX。无论如何,您的问题是计时器溢出。您需要以不同的方式处理此问题 - 也许查看 getrusage(2) .

关于clock() 在 C 中返回一个负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19366943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com