系统相关
首页 > 系统相关> > Linux上准确的进程间定时器

Linux上准确的进程间定时器

作者:互联网

我想测量发送者进程和使用者之间的ping时间.
这两个进程都在同一物理主机Linux 64位上运行.

我目前正在使用clock_gettime(CLOCK_REALTIME,& cur_ts);.
我基本上捕获当前时间戳cur_ts并将其发送给消费者进程;一旦它被另一端接收,我就调用clock_gettime(CLOCK_REALTIME,& cur_ts);再次在第二个过程中减去两次.

此过程是否准确测量两个进程之间的ping?我应该使用不同的东西吗?

谢谢

解决方法:

您正在使用正确的界面.这是一款Posix指定的HRT(高分辨率计时器),可在现代Loonix中使用,您的使用是规范标准.

对于ping分辨率,它可能无关紧要,但可以使用CLOCK_MONOTONIC,尤其是短时间间隔.在其他条件下,CLOCK_REALTIME可能更准确.但是,这些时钟的确切含义并不是由Posix指定的,而在Linux上,我相信所有这些都需要进行NTP调整.至少对于长时间间隔来说这是一件好事.

在Linux上,要在不进行NTP调整的情况下访问底层硬件时钟,您必须关闭Posix预留并使用CLOCK_MONOTONIC_RAW.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html

标签:c-3,linux,gcc,system-clock
来源: https://codeday.me/bug/20190629/1328071.html