在C中使用计时器

时间:2018-06-04 00:23:22

标签: c timer

我已经阅读了几个具有相同标题的论坛,虽然我所追求的并不是一种了解计算机执行程序需要多长时间的方法。 我有兴趣了解用户使用该程序的时间。我已经查看了#include <time.h>中的几个函数,但是,似乎这些函数(如clock_t)给了我的计算机执行代码所需的时间,这不是我所追求的。

感谢您的时间。

编辑:

我做了:

clock_t start, stop;
long int x;
double duration;

start = clock();


//code 

stop = clock();  // get number of ticks after loop

// calculate time taken for loop
duration = ( double ) ( stop - start ) / CLOCKS_PER_SEC;

printf( "\nThe number of seconds for loop to run was %.2lf\n", duration );

我从节目中收到0.16,然而,当我计时时,我得到1分14秒。这怎么可能加起来?

2 个答案:

答案 0 :(得分:2)

clock函数计算使用的CPU时间,而不是经过的时间。对于100%CPU密集型的程序,clock报告的时间将接近待机时间,但否则可能会更少 - 通常更少。

一种简单的测量过去时间或&#34;挂钟的方法&#34;时间是time函数:

time_t start, stop;

start = time(NULL);

// code

stop = time(NULL);  

printf("The number of seconds for loop to run was %ld\n", stop - start);

这是一个POSIX功能 - 但它不是核心C标准的一部分,而且可能不存在于C的嵌入式版本中。

答案 1 :(得分:0)

我认为你正在寻找getrusage()功能。它没有给你时间消耗,就像你使用秒表来计算功能一样。

该函数提供当前程序的总体资源使用情况,并按用户分割。这就是time命令给出的内容。