【发布时间】:2019-08-16 02:42:27
【问题描述】:
我正在为我的 c 程序使用时钟功能来打印当前程序的执行时间。我在输出中得到错误的时间。我想以秒、毫秒和微秒为单位显示时间。
#include <stdio.h>
#include <unistd.h>
#include <time.h>
int main()
{
clock_t start = clock();
sleep(3);
clock_t end = clock();
double time_taken = (double)(end - start)/CLOCKS_PER_SEC; // in seconds
printf("time program took %f seconds to execute \n", time_taken);
return 0;
}
time ./time
time program took 0.081000 seconds to execute
real 0m3.002s
user 0m0.000s
sys 0m0.002s
我预计输出大约 3 秒,但它显示错误。 如您所见如果我使用 Linux 命令时间运行此程序我得到了正确的时间,我想使用我的 c 程序显示相同的时间。
【问题讨论】:
-
它正在测量程序执行所消耗的CPU时间。我想睡眠时间不计算在内(因为该过程在此期间暂停)。提到的
clock_gettime正在测量“全球”时间。所以这取决于你想在这里测量什么。 -
我如何在程序@EugeneSh.@pmg 中使用它
-
祝你好运,精确到微秒。