首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C语言编写的定时程序

用C语言编写的定时程序
EN

Stack Overflow用户
提问于 2011-12-07 08:36:30
回答 2查看 476关注 0票数 2

我需要在程序内部对我的C程序进行计时(因为我正在计时代码的多个子段并输出它们的时间)。它必须以(至少)毫秒的精度完成。我的理解是"time.h“函数只适用于第二个函数。有没有其他方法可以做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-07 08:58:29

您可以使用<time.h>中的函数clock()

函数的作用是:返回程序所用处理器时间的近似值。

将返回值除以宏CLOCKS_PER_SEC得到以秒为单位的时间量,如果想要以毫秒为单位的时间,可以将该值乘以1000,即:

代码语言:javascript
复制
double get_time_as_ms(void) {
   return ((double)(clock() * 1000) / CLOCKS_PER_SEC);
}

或者更准确地说,有一个开始和结束clock_t,然后计算差值:

代码语言:javascript
复制
double duration_as_ms(clock_t start, clock_t end) {
    return ((double)(end - start) * 1000) / CLOCKS_PER_SEC;

}

clock_t start = clock(); /* start of program */
/* ... */
clock_t end = clock(); /* end of program */
/* ... */
printf("Duration: %fms\m", duration_as_ms(start, end));

EDIT:刚才还想说,CLOCKS_PER_SEC的一个常见值是1000000,这意味着clock()返回的值应该是十万分之一秒。因此,它的精确度为千分之一毫秒(微秒)。

票数 2
EN

Stack Overflow用户

发布于 2011-12-07 08:41:11

您可以尝试使用gettimeofday函数,时间精度为微秒。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8408946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档