试图使用gettimeofday来查找以毫秒为单位的经过时间

Trying to use gettimeofday to find elapsed time in milliseconds

本文关键字:为单位 时间 经过 查找 gettimeofday      更新时间:2023-10-16

所以我试图使用gettimeofday来查找代码执行的经过时间。但是当我把它输出到stdout时,我得到了一个非常大的数字。执行只花了不到一秒的时间,但输出显示的运行时间要长得多。

struct timeval start, end;
gettimeofday(&start, NULL);
//code
gettimeofday(&end, NULL);
printf("Elapsed Time = %ldn", (end.tv_sec - start.tv_sec) + ((end.tv_usec - start.tv_usec)/1000000.0);

代码执行不到一秒,但我的输出是-> 140734185085712

Printf with %ld期望一个整数而不是浮点数。尝试%f类似,而不是%ld。此外,您可能希望检查(并处理)微秒部分的环绕。