【问题标题】:Does linux "clock()" function count in "sleep" time of a process?linux“clock()”函数是否计入进程的“睡眠”时间?
【发布时间】:2017-06-20 20:39:08
【问题描述】:

我调用了“sleep”函数,但似乎并没有真正计算在内,像这样:

#include<iostream>
#include<unistd.h>
#include<time.h>
using namespace std;
int main(){
    clock_t t1=clock();
    sleep(2);
    clock_t t2=clock();
    cout<<t2-t1<<endl;
    return 0;
}

它会在 2 个“clock()”调用之间打印非常少的毫秒时间间隔。我预计它应该报告 2,000,000。

我的猜测正确吗?手册页没有对我的问题指定任何答案。有没有更好的函数来获取两行代码之间经过的时间?

【问题讨论】:

  • 使用 gettimeofday()

标签: linux function time process clock


【解决方案1】:

clock(3) 不返回秒数,它返回使用的秒数除以CLOCKS_PER_SEC(值 1000000)。

在 C++ 中,您可能想要使用

auto t1 = std::chrono::system_clock::now();
sleep(2)
auto t2 = std::chrono::system_clock::now();
auto duration = t2 - t1;
std::cout << duration.count() << endl;

别忘了用-std=c++11编译

【讨论】:

    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2011-12-22
    • 1970-01-01
    • 2012-08-08
    • 2022-10-18
    • 2012-08-31
    相关资源
    最近更新 更多