C‘Clock()’函数只返回一个零,如何实现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

c.cclock()函数只返回一个零。我试过使用不同的类型,但没有改善...这是一种很好的测量时间的方法吗?

#include <time.h>
#include <stdio.h>

int main()
{
    clock_t start, end;
    double cpu_time_used;

    char s[32];

    start = clock();

    printf("\nSleeping 3 seconds...\n\n");
    sleep(3);

    end = clock();

    cpu_time_used = ((double)(end - start)) / ((double)CLOCKS_PER_SEC);

    printf("start = %.20f\nend   = %.20f\n", start, end);
    printf("delta = %.20f\n", ((double) (end - start)));
    printf("cpu_time_used  = %.15f\n", cpu_time_used);
    printf("CLOCKS_PER_SEC = %i\n\n", CLOCKS_PER_SEC);

    return 0;
}
Sleeping 3 seconds...

start = 0.00000000000000000000
end   = 0.00000000000000000000
delta = 0.00000000000000000000
cpu_time_used  = 0.000000000000000
CLOCKS_PER_SEC = 1000000

平台:Intel 32位,RedHat Linux,GCC 3.4.6

提问于
用户回答回答于

clock()报告使用的CPU时间。sleep()不需要任何CPU时间,所以你的结果可能是完全正确的,只是不是你想要的。

用户回答回答于

扫码关注云+社区

领取腾讯云代金券