linux - linux "clock()"函数是否计入进程的 "sleep"时间?

标签 linux function time process clock

我调用了“ 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。

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

最佳答案

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编译

关于linux - linux "clock()"函数是否计入进程的 "sleep"时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42024851/

相关文章:

function - 如何将函数的值输出到调用者而不是控制台

javascript - 使用 setInterval 调用原型(prototype)函数的问题

ruby-on-rails - 如何在 Rails 中检查给定时间是否在下午 3 点之后?

linux - Grails 的 JAVA_HOME 问题

c - 运行程序的多个输入

linux - 设置路径变量并运行 Ruby 脚本

java - JodaTime 比较两个不同时区的日期

linux - 从 .dat 文件读取时如何消除除必需数字以外的所有内容?

javascript - 如何让一个函数在点击时多次出现

mysql - 从每个小组问题中获得最短的时间