如何测量特定线程集的CPU时间?

时间:2017-07-05 02:56:27

标签: c++ linux multithreading performance measure

我在Linux中运行C ++程序。

有几个线程池(用于计算,用于io,用于......这样的事情)。

系统调用clock()为我提供了一种方法来测量所有CPU内核为该进程花费的CPU时间。

但是,我想测量仅由计算线程池中的线程花费的CPU时间。

我怎样才能实现它?

谢谢:D

1 个答案:

答案 0 :(得分:9)

获取您可以使用的每个主题的CPU clock IDpthread_getcpuclockid 使用此CPU clock ID,您可以使用以下内容检索当前线程CPU时间:clock_gettime

以下是演示相同内容的示例代码:

struct timespec currTime;
clockid_t threadClockId;

//! Get thread clock Id
pthread_getcpuclockid(pthread_self(), &threadClockId);
//! Using thread clock Id get the clock time
clock_gettime(threadClockId, &currTime);