gpt4 book ai didi

在 timeval 和 clock() 之间选择以计算 C 中耗时

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

我正在使用 timeval 和 clock() 函数来查看我的 C 程序中两个 Action 之间的时间差。不知何故,timeval 似乎给了我正确的耗时(以毫秒为单位),而 clock() 给出的值非常非常少。

    g_time = clock();
gettimeofday(&decode_t,NULL);

一段时间后

    delay =((float)(clock()-g_time)/(float)CLOCKS_PER_SEC);
gettimeofday(&poll_t,NULL);
delay1 = ((poll_t.tv_sec - decode_t.tv_sec)*1000 + (poll_t.tv_usec - decode_t.tv_usec)/1000.0) ;
printf("\ndelay1: %f delay: %f ",delay1,delay);

通常的输出是:

延迟 1:1577.603027 延迟:0.800000

delay1 以毫秒为单位,delay 以秒为单位。

我正在使用 archlinux 64 位。我不明白为什么会这样。

最佳答案

来自clock(3)手册页:

The clock() function returns an approximation of processor time used by the program.

因此 clock 函数不返回耗时量,而是返回程序运行的“滴答”数。如您所知,在多任务系统中,您的程序可以随时暂停以让其他程序运行。

关于在 timeval 和 clock() 之间选择以计算 C 中耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18722580/

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