首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >::clock()?

::clock()?
EN

Stack Overflow用户
提问于 2018-04-07 15:21:21
回答 1查看 145关注 0票数 0

我在IBM中执行以下代码。

代码语言:javascript
复制
int main(void)
{
    printf( "start\n");
    double time1 = (double)clock();      /* get initial time */
    time1 = time1 / CLOCKS_PER_SEC;      /*    in seconds    */

    boost::this_thread::sleep_for(boost::chrono::seconds(5));

    /* call clock a second time */
    double time2 = (((double)clock()) / CLOCKS_PER_SEC);
    double timedif = time2 - time1;
    printf( "The elapsed time is %lf seconds, time1:%lf time2:%lf CLOCKS_PER_SEC:%ld\n", 
            timedif));
}

结果是:

2018-04-07 :58:37开始2018-04-07 :58:42经过的时间是0.000180秒,时间1:0.000000时间2:0.000181 CLOCKS_PER_SEC:1000000

我不知道为什么经过的时间是0.000180 (为什么不是5)?

EN

回答 1

Stack Overflow用户

发布于 2018-04-07 15:50:41

根据手册

返回程序消耗的处理器时间。

它是程序消耗的CPU时间,不是物理时间。睡眠程序不会占用CPU时间。因此,在生词中,它是从mainsleep的时间间隔,加上sleep之后的时间间隔,直到返回。

如果您想获得系统/实时,请查看std::chrono::system_clock类。

代码语言:javascript
复制
#include <chrono>
using std::chrono::system_clock;
system_clock::time_point time_now = system_clock::now();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49708854

复制
相关文章

相似问题

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