我在Linux中运行C ++程序。
有几个线程池(用于计算,用于io,用于......这样的事情)。
系统调用clock()为我提供了一种方法来测量所有CPU内核为该进程花费的CPU时间。
但是,我想测量仅由计算线程池中的线程花费的CPU时间。
我怎样才能实现它?
谢谢:D
答案 0 :(得分:9)
获取您可以使用的每个主题的CPU clock ID
:pthread_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);