Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何测量一组特定线程的CPU时间? 我在Linux上运行C++程序。_C++_Linux_Multithreading_Performance_Measure - Fatal编程技术网

如何测量一组特定线程的CPU时间? 我在Linux上运行C++程序。

如何测量一组特定线程的CPU时间? 我在Linux上运行C++程序。,c++,linux,multithreading,performance,measure,C++,Linux,Multithreading,Performance,Measure,有几个线程池(用于计算、io、等等) 系统调用clock()为我提供了一种方法来测量进程中所有CPU核所花费的CPU时间 但是,我只想测量计算线程池中的线程所花费的CPU时间 我怎样才能做到呢 感谢:D获取您可以使用的每个线程的CPU时钟ID: 使用此CPU时钟ID可以使用以下命令检索当前线程的CPU时间: 以下是示例代码以演示相同的功能: struct timespec currTime; clockid_t threadClockId; //! Get thread clock Id pt

有几个线程池(用于计算、io、等等)

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

但是,我只想测量计算线程池中的线程所花费的CPU时间

我怎样才能做到呢


感谢:D

获取您可以使用的每个线程的
CPU时钟ID
: 使用此
CPU时钟ID
可以使用以下命令检索当前线程的CPU时间:

以下是示例代码以演示相同的功能:

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

这并不理想,但我认为最简单的解决方案是使用每个线程的开始和停止时间戳记录一些消息,并通过对这些日志进行后处理来获取计时。您似乎还可以根据调用
clock\u gettime(clock\u thread\u CPUTIME\u ID,&currTime)
,这样就不需要pthread依赖性。