C++ linux-在多处理器系统上以微秒精度打印当前时间
如何以微秒(或更好的纳秒)精度打印当前系统时间?我需要这段时间在所有系统处理器之间保持一致。如果这是不可能的,我希望它在所有处理器核心之间保持一致C++ linux-在多处理器系统上以微秒精度打印当前时间,c++,linux,C++,Linux,如何以微秒(或更好的纳秒)精度打印当前系统时间?我需要这段时间在所有系统处理器之间保持一致。如果这是不可能的,我希望它在所有处理器核心之间保持一致 我试过使用clock\u gettime(clock\u REALTIME),但我怀疑它至少在不同的处理器上运行时会产生不同的结果。听起来我真正想要的是clock\u单调的原始(或者只是clock\u单调的)。原始时钟测量从固定点开始的时间,并查询纯硬件时钟。在Linux上,此固定时间点是启动时间。系统时间的更改不会影响此时钟(夏季/冬季等) 您可以
我试过使用clock\u gettime(clock\u REALTIME),但我怀疑它至少在不同的处理器上运行时会产生不同的结果。听起来我真正想要的是
clock\u单调的原始
(或者只是clock\u单调的
)。原始时钟测量从固定点开始的时间,并查询纯硬件时钟。在Linux上,此固定时间点是启动时间。系统时间的更改不会影响此时钟(夏季/冬季等)
您可以通过调用clock\u getres(clockid\t clk\u id,struct timespec*res);
gettime
和getres
都采用timespec结构,其中包含两个整数:秒和纳秒。因此,软件就在那里,您只需要一个能够提供纳秒分辨率的(硬件)时钟
两个功能的手册页:
&
如果您可以访问Michael Kerrisk的《Linux编程接口》一书,请参阅第23章第5段(POSIX时钟).说到基本的Linux编程,这本书给了我比StackOverflow更多的答案!检查。看看高分辨率时钟在不同的物理过程中是否工作?什么是更好的感受低延迟要求-高结果时钟或时钟gettime或gettimeofday?更重要的是阅读是它的保证吗teed,CLOCK_monotional_RAW可以在物理处理器之间使用?单调时钟是用于系统的。因此,我的理解是,无论有多少个内核,它们之间的时间都是相同的。这个问题也得到了回答:。