如何计算包含的程序运行时间

时间:2015-10-26 05:04:22

标签: c c++11 pthreads

问题是不允许使用clock()函数,但我不知道如何在线程中处理time()函数。

3 个答案:

答案 0 :(得分:1)

由于您标记了帖子C ++ 11,请查看chrono库:

#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();

答案 1 :(得分:0)

我认为您可以使用gettimeofday()函数来获取开始时间和结束时间。虽然此功能仅适用于Linux。请参阅[1]:http://linux.die.net/man/2/gettimeofday

对于Windows中的此功能,请参阅[2]:Equivalent of gettimeday() for Windows

答案 2 :(得分:0)

假设有Linux系统,请阅读time(7),然后使用clock_gettime(2),可能使用CLOCK_REALTIME&amp; CLOCK_THREAD_CPUTIME_ID;另见pthread_getcpuclockid(3)&amp; getrusage(2)

顺便说一下,你的MAX_THREADS太大了。你最多应该有十几个或两个线程......