获取并行运行线程的性能统计信息-
要获取线程列表,我使用/proc/self/task 中的线程列表
现在我想获取线程的 CPU 时间时钟的 ID。但是 clock_getcpuclockid 只适用于 PID。
pthread_getcpuclockid 需要线程的 pthread id,我没有找到任何方法从线程的 TId 获取 pthread id,所以我正在寻找这个问题的任何替代解决方案。 CLOCK_THREAD_CPUTIME_ID 将仅返回当前信息,我需要所有并行线程的信息。欢迎提出任何建议。
有没有 pthread_getcpuclockid 的替代方案?我想知道内部的 pthread 实现是做什么的?
最佳答案
阅读time(7) & clock_gettime(2) .您可能想使用 CLOCK_THREAD_CPUTIME_ID
另见 proc(5)
Is there any alternative to
pthread_getcpuclockid?
I wonder what pthread implementation does inside ?
这很简单,并且特定于实现(可能在 GNU libc 和 musl-libc 之间变化)。大多数(AFAIK,全部)C standard libraries在 Linux 上是 free software ,这样您就可以研究他们的源代码。
对于 musl-libc src/threads/pthread_getcpuclockid.c正在从与 thread_t
对于 GNU libc,我将深入了解其源代码留给您。
关于c - 任何与 pthread_getcpuclockid 等效的函数,因为我有 Thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668240/