【问题标题】:how to time the program running time thread included如何计时程序运行时间线程包括
【发布时间】:2015-10-26 05:04:21
【问题描述】:

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

【问题讨论】:

标签: c c++11 pthreads


【解决方案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();

【讨论】:

    【解决方案2】:

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

    windows中该功能请参考[2]:Equivalent of gettimeday() for Windows

    【讨论】:

    • gettimeofday 应该在每个 POSIX 系统上都可用,而不仅仅是在 Linux 上
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多