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