我有一个多线程 C 应用程序(守护进程)。我可以按线程测量应用程序的 CPU 使用率吗?
最佳答案
虽然这是一个老问题,但它在我自己的 Google 搜索中被列为最相关的问题。所以我会提供我想到的答案。
假设您正在使用 pthreads 或使用它的库,例如 Boost 库。
您可以使用pthread_getcpuclockid
和clock_gettime
。
手册页链接 pthread_getcpuclockid , clock_gettime .
这是一个简单的示例,它以 double 的形式返回当前时间。
double cpuNow( void ) {
struct timespec ts;
clockid_t cid;
pthread_getcpuclockid(pthread_self(), &cid);
clock_gettime(cid, &ts);
return ts.tv_sec + (((double)ts.tv_nsec)*0.000000001);
}
关于我可以通过线程进入应用程序来测量 Linux 中的 CPU 使用率吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638590/