c - 在C中使用定时器

标签 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 秒。这怎么可能加起来?

最佳答案

clock 函数计算使用的 CPU 时间,而不是耗时。对于 100% CPU 密集型的程序,clock 报告的时间将接近实际时间,但除此之外它可能会更少——通常要少得多。

测量耗时或“挂钟”时间的一种简单方法是使用 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 的嵌入式版本中。

关于c - 在C中使用定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50672145/

相关文章:

java - 在 Java 和 C 文件中创建属性

c - 是案例内的三重点(案例 '0' ... '9' :) valid C language switch syntax?

c - 使用字符串指针问题结构查找表

c - 为什么同一程序的 INST_PTR(指令指针)值会因不同的运行而改变?

执行线程时更改C线程参数

javascript - JavaScript 中的自定义计时器

node.js - libuv 和 Node.js 实际上是如何调度定时器的?

swift - 每天午夜运行代码

javascript - Jquery:setTimeout定时器与相应的高分列表不匹配

java - Android 从 sleep 状态返回后,定期执行多次计时器任务