【发布时间】:2013-11-25 08:43:55
【问题描述】:
似乎 Linux 高分辨率计时器开始在每个线程的范围内计数 - 而不是在应用程序中全局计数。
我尝试使用 CLOCK_PROCESS_CPUTIME_ID 但它给了我线程行为?
CLOCK_PROCESS_CPUTIME_ID (since Linux 2.6.12) High-resolution per-process timer from the CPU. CLOCK_THREAD_CPUTIME_ID (since Linux 2.6.12) Thread-specific CPU-time clock.
寻找跨线程的高分辨率计时器。
(全局计时器以毫秒为单位,而高分辨率以纳秒为单位。)
如何在多线程环境中获得高分辨率时间?
【问题讨论】:
-
需要人工时间还是计算时间。人工时间以秒为单位,计算时间以指令为单位?
-
@mikhail:尽可能计算时间,寻找纳/微秒
-
您所说的在威胁范围内开始是什么意思?你试过什么了?根据clock_gettime(2) 的说法,Linux 提供了一个来自 CPU 的高分辨率每进程计时器。
-
@oswald:看来返回的时间是相对于线程开始的时间。
-
@oswald:尝试了 CLOCK_PROCESS_CPUTIME_ID,给了我线程行为...
标签: c++ c linux multithreading timer