在C语言中使用定时器
我读过几个同名的论坛,虽然我所追求的并不是一种了解我的电脑执行程序需要多长时间的方法。 我感兴趣的是了解用户使用该程序的时间。我已经研究了在C语言中使用定时器,c,timer,C,Timer,我读过几个同名的论坛,虽然我所追求的并不是一种了解我的电脑执行程序需要多长时间的方法。 我感兴趣的是了解用户使用该程序的时间。我已经研究了#include中的几个函数,但是,似乎这些函数(如时钟)为我的计算机提供了执行代码所需的时间,而这不是我所追求的 谢谢你抽出时间 编辑: 我已经做了: clock_t start, stop; long int x; double duration; start = clock(); //code stop = clock(); // get n
#include
中的几个函数,但是,似乎这些函数(如时钟)为我的计算机提供了执行代码所需的时间,而这不是我所追求的
谢谢你抽出时间
编辑:
我已经做了:
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秒。这是怎么加起来的?时钟功能统计使用的CPU时间,而不是经过的时间。对于一个100%CPU密集型的程序,
clock
报告的时间将接近墙时间,但除此之外,它可能更少——通常更少
测量已用时间或“挂钟”时间的一种简单方法是使用时间
功能:
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的嵌入式版本上。我想您正在寻找函数。它不会像你用秒表计时一样给你消耗时间
该函数给出当前程序的总体资源使用情况,并按用户将其拆分。这是命令给出的。是的,有几种不同的计时器和时钟。根据秒表或墙上的时钟,您可以查看(a)使用了多少CPU时间或(b)经过了多少时间。(当然,(a)通常会比(b)小,也许要少得多,除非程序是100%占用CPU的。)“用户使用程序的时间”和“我的计算机执行代码所需的时间”之间有什么区别?time()是相当标准的,在windows()上可用。有更高精度的替代方案,但是如果您想要便携,time()是正确的答案。