加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux上准确的进程间定时器

发布时间:2020-12-13 22:54:33 所属栏目:Linux 来源:网络整理
导读:我想测量发送者进程和使用者之间的ping时间. 这两个进程都在同一物理主机 Linux 64位上运行. 我目前正在使用clock_gettime(CLOCK_REALTIME, cur_ts);. 我基本上捕获当前时间戳cur_ts并将其发送给消费者进程;一旦它被另一端接收,我就调用clock_gettime(CLOCK_
我想测量发送者进程和使用者之间的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读