C 如何计算程序运行时线程的时间
问题是不允许使用clock()函数,但我不知道如何处理线程中的time()函数。我认为可以使用gettimeofday()函数来获取开始时间和结束时间。而这个函数只在Linux中工作。请参阅[1]:C 如何计算程序运行时线程的时间,c,c++11,pthreads,C,C++11,Pthreads,问题是不允许使用clock()函数,但我不知道如何处理线程中的time()函数。我认为可以使用gettimeofday()函数来获取开始时间和结束时间。而这个函数只在Linux中工作。请参阅[1]: 对于windows中的此功能,请参考[2]:假设使用Linux系统,请阅读然后使用,可能与时钟实时&时钟线程\u CPUTIME\u ID;另见, 顺便说一句,你的MAX_线程太大了。您最多应该有一打或两个线程……既然您标记了post C++11,请查看库: #包括 std::chrono::时间点
对于windows中的此功能,请参考[2]:假设使用Linux系统,请阅读然后使用,可能与
时钟实时
&时钟线程\u CPUTIME\u ID
;另见,
顺便说一句,你的
MAX_线程
太大了。您最多应该有一打或两个线程……既然您标记了post C++11,请查看库:
#包括
std::chrono::时间点开始、结束;
开始=标准::时钟::系统时钟::现在();
... // 概率;你可以试着看看为什么你使用pthread
而不是std::thread
,因为你把帖子标记为C++11?gettimeofday
应该在每个POSIX系统上都可用,而不仅仅是在Linux上
#include <chrono>
std::chrono::time_point<std::chrono::system_clock> start, end;
start = std::chrono::system_clock::now();
... // <-- Code that you want to time
end = std::chrono::system_clock::now();
std::cout << "Time : " << std::chrono::duration<double>(end - start).count();